{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "64c956bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c1682ede",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the LEMCell\n",
    "class LEMCell(nn.Module):\n",
    "    def __init__(self, ninp, nhid, dt):\n",
    "        super(LEMCell, self).__init__()\n",
    "        self.ninp = ninp\n",
    "        self.nhid = nhid\n",
    "        self.dt = dt\n",
    "        self.inp2hid = nn.Linear(ninp, 4 * nhid)\n",
    "        self.hid2hid = nn.Linear(nhid, 3 * nhid)\n",
    "        self.transform_z = nn.Linear(nhid, nhid)\n",
    "        self.reset_parameters()\n",
    "\n",
    "    def reset_parameters(self):\n",
    "        std = 1.0 / np.sqrt(self.nhid)\n",
    "        for w in self.parameters():\n",
    "            w.data.uniform_(-std, std)\n",
    "\n",
    "    def forward(self, x, y, z):\n",
    "        transformed_inp = self.inp2hid(x)\n",
    "        transformed_hid = self.hid2hid(y)\n",
    "        i_dt1, i_dt2, i_z, i_y = transformed_inp.chunk(4, 1)\n",
    "        h_dt1, h_dt2, h_y = transformed_hid.chunk(3, 1)\n",
    "\n",
    "        ms_dt_bar = self.dt * torch.sigmoid(i_dt1 + h_dt1)\n",
    "        ms_dt = self.dt * torch.sigmoid(i_dt2 + h_dt2)\n",
    "\n",
    "        z = (1. - ms_dt) * z + ms_dt * torch.tanh(i_y + h_y)\n",
    "        y = (1. - ms_dt_bar) * y + ms_dt_bar * torch.tanh(self.transform_z(z) + i_z)\n",
    "\n",
    "        return y, z\n",
    "\n",
    "# Define the LEM model\n",
    "class LEM(nn.Module):\n",
    "    def __init__(self, ninp, nhid, nout, dt=1.):\n",
    "        super(LEM, self).__init__()\n",
    "        self.nhid = nhid\n",
    "        self.cell = LEMCell(ninp, nhid, dt)\n",
    "        self.classifier = nn.Linear(nhid, nout)\n",
    "        self.init_weights()\n",
    "\n",
    "    def init_weights(self):\n",
    "        for name, param in self.named_parameters():\n",
    "            if 'classifier' in name and 'weight' in name:\n",
    "                nn.init.kaiming_normal_(param.data)\n",
    "\n",
    "    def forward(self, input):\n",
    "        y = input.data.new(input.size(1), self.nhid).zero_()\n",
    "        z = input.data.new(input.size(1), self.nhid).zero_()\n",
    "        for x in input:\n",
    "            y, z = self.cell(x, y, z)\n",
    "        out = self.classifier(y)\n",
    "        return out\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a982afa5",
   "metadata": {},
   "source": [
    "### PINN data importing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "79da65b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# importing data\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burg.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u1']\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbac9f8e",
   "metadata": {},
   "source": [
    "### Exact Solution data importing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9967dbae",
   "metadata": {},
   "outputs": [],
   "source": [
    "# importing data\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import time\n",
    "import scipy.io\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burgers_shock.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u_1 = mat_data['usol']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "83a01b14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(256, 100)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "\n",
    "# Toy problem data\n",
    "input_size = 256\n",
    "hidden_size = 32\n",
    "output_size = 256\n",
    "sequence_length = 79\n",
    "batch_size = 1\n",
    "num_epochs = 20000\n",
    "\n",
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "u[:, 0:100].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0496e4a4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (256,)\n",
      "input data shape (256, 79)\n",
      "Target data shape (256, 79)\n",
      "input tensor shape torch.Size([1, 79, 256])\n",
      "Target tensor shape torch.Size([1, 79, 256])\n"
     ]
    }
   ],
   "source": [
    "input_data = u[:,0:79]\n",
    "target_data = u[:,1:80]\n",
    "\n",
    "test_data = u[:,79]\n",
    "#test_target = u[:,80:100]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "#print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)\n",
    "\n",
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "718d5b86",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 1, input_size).float()\n",
    "#test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()\n",
    "target_tensor = torch.squeeze(target_tensor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d733ab9a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.3866974115371704\n",
      "Epoch: 20/20000, Loss: 0.3487780690193176\n",
      "Epoch: 30/20000, Loss: 0.3087990283966064\n",
      "Epoch: 40/20000, Loss: 0.2699531018733978\n",
      "Epoch: 50/20000, Loss: 0.2344971448183060\n",
      "Epoch: 60/20000, Loss: 0.2015173286199570\n",
      "Epoch: 70/20000, Loss: 0.1723766177892685\n",
      "Epoch: 80/20000, Loss: 0.1483513861894608\n",
      "Epoch: 90/20000, Loss: 0.1284097582101822\n",
      "Epoch: 100/20000, Loss: 0.1117339953780174\n",
      "Epoch: 110/20000, Loss: 0.0977326631546021\n",
      "Epoch: 120/20000, Loss: 0.0859487056732178\n",
      "Epoch: 130/20000, Loss: 0.0760185718536377\n",
      "Epoch: 140/20000, Loss: 0.0676476433873177\n",
      "Epoch: 150/20000, Loss: 0.0605934187769890\n",
      "Epoch: 160/20000, Loss: 0.0546537898480892\n",
      "Epoch: 170/20000, Loss: 0.0496585704386234\n",
      "Epoch: 180/20000, Loss: 0.0454635843634605\n",
      "Epoch: 190/20000, Loss: 0.0419462285935879\n",
      "Epoch: 200/20000, Loss: 0.0390020199120045\n",
      "Epoch: 210/20000, Loss: 0.0365417525172234\n",
      "Epoch: 220/20000, Loss: 0.0344892106950283\n",
      "Epoch: 230/20000, Loss: 0.0327788665890694\n",
      "Epoch: 240/20000, Loss: 0.0313525013625622\n",
      "Epoch: 250/20000, Loss: 0.0301372334361076\n",
      "Epoch: 260/20000, Loss: 0.0290109999477863\n",
      "Epoch: 270/20000, Loss: 0.0280308332294226\n",
      "Epoch: 280/20000, Loss: 0.0271436050534248\n",
      "Epoch: 290/20000, Loss: 0.0262243412435055\n",
      "Epoch: 300/20000, Loss: 0.0254273172467947\n",
      "Epoch: 310/20000, Loss: 0.0246974322944880\n",
      "Epoch: 320/20000, Loss: 0.0240183882415295\n",
      "Epoch: 330/20000, Loss: 0.0233833491802216\n",
      "Epoch: 340/20000, Loss: 0.0227856449782848\n",
      "Epoch: 350/20000, Loss: 0.0221767574548721\n",
      "Epoch: 360/20000, Loss: 0.0215996149927378\n",
      "Epoch: 370/20000, Loss: 0.0210633613169193\n",
      "Epoch: 380/20000, Loss: 0.0205504018813372\n",
      "Epoch: 390/20000, Loss: 0.0200629048049450\n",
      "Epoch: 400/20000, Loss: 0.0195939000695944\n",
      "Epoch: 410/20000, Loss: 0.0191286448389292\n",
      "Epoch: 420/20000, Loss: 0.0186489038169384\n",
      "Epoch: 430/20000, Loss: 0.0181993953883648\n",
      "Epoch: 440/20000, Loss: 0.0177528280764818\n",
      "Epoch: 450/20000, Loss: 0.0173244308680296\n",
      "Epoch: 460/20000, Loss: 0.0169120337814093\n",
      "Epoch: 470/20000, Loss: 0.0165140908211470\n",
      "Epoch: 480/20000, Loss: 0.0161296948790550\n",
      "Epoch: 490/20000, Loss: 0.0157567169517279\n",
      "Epoch: 500/20000, Loss: 0.0153942489996552\n",
      "Epoch: 510/20000, Loss: 0.0150421001017094\n",
      "Epoch: 520/20000, Loss: 0.0146992374211550\n",
      "Epoch: 530/20000, Loss: 0.0143658937886357\n",
      "Epoch: 540/20000, Loss: 0.0140422778204083\n",
      "Epoch: 550/20000, Loss: 0.0137283606454730\n",
      "Epoch: 560/20000, Loss: 0.0134236663579941\n",
      "Epoch: 570/20000, Loss: 0.0131275458261371\n",
      "Epoch: 580/20000, Loss: 0.0128393145278096\n",
      "Epoch: 590/20000, Loss: 0.0125583559274673\n",
      "Epoch: 600/20000, Loss: 0.0122841447591782\n",
      "Epoch: 610/20000, Loss: 0.0120162507519126\n",
      "Epoch: 620/20000, Loss: 0.0117543358355761\n",
      "Epoch: 630/20000, Loss: 0.0114981345832348\n",
      "Epoch: 640/20000, Loss: 0.0112474421039224\n",
      "Epoch: 650/20000, Loss: 0.0110021019354463\n",
      "Epoch: 660/20000, Loss: 0.0107619864866138\n",
      "Epoch: 670/20000, Loss: 0.0105270054191351\n",
      "Epoch: 680/20000, Loss: 0.0102970693260431\n",
      "Epoch: 690/20000, Loss: 0.0100721139460802\n",
      "Epoch: 700/20000, Loss: 0.0098520694300532\n",
      "Epoch: 710/20000, Loss: 0.0096370177343488\n",
      "Epoch: 720/20000, Loss: 0.0094266217201948\n",
      "Epoch: 730/20000, Loss: 0.0092209735885262\n",
      "Epoch: 740/20000, Loss: 0.0090200519189239\n",
      "Epoch: 750/20000, Loss: 0.0088236974552274\n",
      "Epoch: 760/20000, Loss: 0.0086318692192435\n",
      "Epoch: 770/20000, Loss: 0.0084444871172309\n",
      "Epoch: 780/20000, Loss: 0.0082614812999964\n",
      "Epoch: 790/20000, Loss: 0.0080827772617340\n",
      "Epoch: 800/20000, Loss: 0.0079082995653152\n",
      "Epoch: 810/20000, Loss: 0.0077379699796438\n",
      "Epoch: 820/20000, Loss: 0.0075717102736235\n",
      "Epoch: 830/20000, Loss: 0.0074094338342547\n",
      "Epoch: 840/20000, Loss: 0.0072510791942477\n",
      "Epoch: 850/20000, Loss: 0.0070965839549899\n",
      "Epoch: 860/20000, Loss: 0.0069457269273698\n",
      "Epoch: 870/20000, Loss: 0.0067984559573233\n",
      "Epoch: 880/20000, Loss: 0.0066545559093356\n",
      "Epoch: 890/20000, Loss: 0.0065126288682222\n",
      "Epoch: 900/20000, Loss: 0.0062295622192323\n",
      "Epoch: 910/20000, Loss: 0.0060072029009461\n",
      "Epoch: 920/20000, Loss: 0.0058312206529081\n",
      "Epoch: 930/20000, Loss: 0.0056541315279901\n",
      "Epoch: 940/20000, Loss: 0.0054842131212354\n",
      "Epoch: 950/20000, Loss: 0.0053147980943322\n",
      "Epoch: 960/20000, Loss: 0.0051327170804143\n",
      "Epoch: 970/20000, Loss: 0.0049659223295748\n",
      "Epoch: 980/20000, Loss: 0.0048077744431794\n",
      "Epoch: 990/20000, Loss: 0.0046537732705474\n",
      "Epoch: 1000/20000, Loss: 0.0045035379007459\n",
      "Epoch: 1010/20000, Loss: 0.0043577156029642\n",
      "Epoch: 1020/20000, Loss: 0.0042155655100942\n",
      "Epoch: 1030/20000, Loss: 0.0040753991343081\n",
      "Epoch: 1040/20000, Loss: 0.0039346287958324\n",
      "Epoch: 1050/20000, Loss: 0.0037930461112410\n",
      "Epoch: 1060/20000, Loss: 0.0036596946883947\n",
      "Epoch: 1070/20000, Loss: 0.0035346036311239\n",
      "Epoch: 1080/20000, Loss: 0.0034161636140198\n",
      "Epoch: 1090/20000, Loss: 0.0033023308496922\n",
      "Epoch: 1100/20000, Loss: 0.0031929996330291\n",
      "Epoch: 1110/20000, Loss: 0.0030893252696842\n",
      "Epoch: 1120/20000, Loss: 0.0029896285850555\n",
      "Epoch: 1130/20000, Loss: 0.0028939580079168\n",
      "Epoch: 1140/20000, Loss: 0.0028020783793181\n",
      "Epoch: 1150/20000, Loss: 0.0027126306667924\n",
      "Epoch: 1160/20000, Loss: 0.0026268248911947\n",
      "Epoch: 1170/20000, Loss: 0.0025455490685999\n",
      "Epoch: 1180/20000, Loss: 0.0024674416054040\n",
      "Epoch: 1190/20000, Loss: 0.0023925965651870\n",
      "Epoch: 1200/20000, Loss: 0.0023207620251924\n",
      "Epoch: 1210/20000, Loss: 0.0022518015466630\n",
      "Epoch: 1220/20000, Loss: 0.0021856061648577\n",
      "Epoch: 1230/20000, Loss: 0.0021220932248980\n",
      "Epoch: 1240/20000, Loss: 0.0020611907821149\n",
      "Epoch: 1250/20000, Loss: 0.0020028203725815\n",
      "Epoch: 1260/20000, Loss: 0.0019488724647090\n",
      "Epoch: 1270/20000, Loss: 0.0018946670461446\n",
      "Epoch: 1280/20000, Loss: 0.0018423703731969\n",
      "Epoch: 1290/20000, Loss: 0.0017932109767571\n",
      "Epoch: 1300/20000, Loss: 0.0017461210954934\n",
      "Epoch: 1310/20000, Loss: 0.0017008291324601\n",
      "Epoch: 1320/20000, Loss: 0.0016573907341808\n",
      "Epoch: 1330/20000, Loss: 0.0016156604979187\n",
      "Epoch: 1340/20000, Loss: 0.0015755523927510\n",
      "Epoch: 1350/20000, Loss: 0.0015369870234281\n",
      "Epoch: 1360/20000, Loss: 0.0014998820843175\n",
      "Epoch: 1370/20000, Loss: 0.0014641598099843\n",
      "Epoch: 1380/20000, Loss: 0.0014297413872555\n",
      "Epoch: 1390/20000, Loss: 0.0013965470716357\n",
      "Epoch: 1400/20000, Loss: 0.0013645854778588\n",
      "Epoch: 1410/20000, Loss: 0.0013335648691282\n",
      "Epoch: 1420/20000, Loss: 0.0013038037577644\n",
      "Epoch: 1430/20000, Loss: 0.0012749967863783\n",
      "Epoch: 1440/20000, Loss: 0.0012471737572923\n",
      "Epoch: 1450/20000, Loss: 0.0012202707584947\n",
      "Epoch: 1460/20000, Loss: 0.0011941986158490\n",
      "Epoch: 1470/20000, Loss: 0.0011688874801621\n",
      "Epoch: 1480/20000, Loss: 0.0011442414252087\n",
      "Epoch: 1490/20000, Loss: 0.0011204498587176\n",
      "Epoch: 1500/20000, Loss: 0.0010974769247696\n",
      "Epoch: 1510/20000, Loss: 0.0010752448579296\n",
      "Epoch: 1520/20000, Loss: 0.0010537237394601\n",
      "Epoch: 1530/20000, Loss: 0.0010328948264942\n",
      "Epoch: 1540/20000, Loss: 0.0010138462530449\n",
      "Epoch: 1550/20000, Loss: 0.0009941509924829\n",
      "Epoch: 1560/20000, Loss: 0.0009746887371875\n",
      "Epoch: 1570/20000, Loss: 0.0009561158367433\n",
      "Epoch: 1580/20000, Loss: 0.0009382710559294\n",
      "Epoch: 1590/20000, Loss: 0.0009210530552082\n",
      "Epoch: 1600/20000, Loss: 0.0009043362224475\n",
      "Epoch: 1610/20000, Loss: 0.0008881015819497\n",
      "Epoch: 1620/20000, Loss: 0.0008723307400942\n",
      "Epoch: 1630/20000, Loss: 0.0008570029167458\n",
      "Epoch: 1640/20000, Loss: 0.0008420954691246\n",
      "Epoch: 1650/20000, Loss: 0.0008275883155875\n",
      "Epoch: 1660/20000, Loss: 0.0008134644012898\n",
      "Epoch: 1670/20000, Loss: 0.0007997265784070\n",
      "Epoch: 1680/20000, Loss: 0.0007886002422310\n",
      "Epoch: 1690/20000, Loss: 0.0007735147373751\n",
      "Epoch: 1700/20000, Loss: 0.0007608847226948\n",
      "Epoch: 1710/20000, Loss: 0.0007484044181183\n",
      "Epoch: 1720/20000, Loss: 0.0007362744072452\n",
      "Epoch: 1730/20000, Loss: 0.0007245097076520\n",
      "Epoch: 1740/20000, Loss: 0.0007130693411455\n",
      "Epoch: 1750/20000, Loss: 0.0007018874748610\n",
      "Epoch: 1760/20000, Loss: 0.0006909691146575\n",
      "Epoch: 1770/20000, Loss: 0.0006802936550230\n",
      "Epoch: 1780/20000, Loss: 0.0006698502693325\n",
      "Epoch: 1790/20000, Loss: 0.0006596244056709\n",
      "Epoch: 1800/20000, Loss: 0.0006495984853245\n",
      "Epoch: 1810/20000, Loss: 0.0006397463148460\n",
      "Epoch: 1820/20000, Loss: 0.0006300231907517\n",
      "Epoch: 1830/20000, Loss: 0.0006203753873706\n",
      "Epoch: 1840/20000, Loss: 0.0006109441164881\n",
      "Epoch: 1850/20000, Loss: 0.0006018815911375\n",
      "Epoch: 1860/20000, Loss: 0.0005930468323641\n",
      "Epoch: 1870/20000, Loss: 0.0005842540995218\n",
      "Epoch: 1880/20000, Loss: 0.0005749702686444\n",
      "Epoch: 1890/20000, Loss: 0.0005663698539138\n",
      "Epoch: 1900/20000, Loss: 0.0005579125136137\n",
      "Epoch: 1910/20000, Loss: 0.0005495724617504\n",
      "Epoch: 1920/20000, Loss: 0.0005413942271844\n",
      "Epoch: 1930/20000, Loss: 0.0005333498120308\n",
      "Epoch: 1940/20000, Loss: 0.0005254746065475\n",
      "Epoch: 1950/20000, Loss: 0.0005177774582990\n",
      "Epoch: 1960/20000, Loss: 0.0005102361319587\n",
      "Epoch: 1970/20000, Loss: 0.0005028438754380\n",
      "Epoch: 1980/20000, Loss: 0.0004955942276865\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1990/20000, Loss: 0.0004884817171842\n",
      "Epoch: 2000/20000, Loss: 0.0004817107692361\n",
      "Epoch: 2010/20000, Loss: 0.0004749310028274\n",
      "Epoch: 2020/20000, Loss: 0.0004686535976361\n",
      "Epoch: 2030/20000, Loss: 0.0004616066580638\n",
      "Epoch: 2040/20000, Loss: 0.0004549020377453\n",
      "Epoch: 2050/20000, Loss: 0.0004484553937800\n",
      "Epoch: 2060/20000, Loss: 0.0004421809571795\n",
      "Epoch: 2070/20000, Loss: 0.0004360130114947\n",
      "Epoch: 2080/20000, Loss: 0.0004299433785491\n",
      "Epoch: 2090/20000, Loss: 0.0004239823028911\n",
      "Epoch: 2100/20000, Loss: 0.0004181207332294\n",
      "Epoch: 2110/20000, Loss: 0.0004123584658373\n",
      "Epoch: 2120/20000, Loss: 0.0004066921246704\n",
      "Epoch: 2130/20000, Loss: 0.0004011191776954\n",
      "Epoch: 2140/20000, Loss: 0.0003956370055676\n",
      "Epoch: 2150/20000, Loss: 0.0003902434546035\n",
      "Epoch: 2160/20000, Loss: 0.0003849362256005\n",
      "Epoch: 2170/20000, Loss: 0.0003797135723289\n",
      "Epoch: 2180/20000, Loss: 0.0003745739522856\n",
      "Epoch: 2190/20000, Loss: 0.0003695400082506\n",
      "Epoch: 2200/20000, Loss: 0.0003691661695484\n",
      "Epoch: 2210/20000, Loss: 0.0003596619935706\n",
      "Epoch: 2220/20000, Loss: 0.0003548728709575\n",
      "Epoch: 2230/20000, Loss: 0.0003501392784528\n",
      "Epoch: 2240/20000, Loss: 0.0003454872057773\n",
      "Epoch: 2250/20000, Loss: 0.0003409073397052\n",
      "Epoch: 2260/20000, Loss: 0.0003363889409229\n",
      "Epoch: 2270/20000, Loss: 0.0003319375973660\n",
      "Epoch: 2280/20000, Loss: 0.0003275649214629\n",
      "Epoch: 2290/20000, Loss: 0.0003232590388507\n",
      "Epoch: 2300/20000, Loss: 0.0003190202987753\n",
      "Epoch: 2310/20000, Loss: 0.0003148464893457\n",
      "Epoch: 2320/20000, Loss: 0.0003107367083430\n",
      "Epoch: 2330/20000, Loss: 0.0003066896169912\n",
      "Epoch: 2340/20000, Loss: 0.0003027040802408\n",
      "Epoch: 2350/20000, Loss: 0.0002987789630424\n",
      "Epoch: 2360/20000, Loss: 0.0002949130430352\n",
      "Epoch: 2370/20000, Loss: 0.0002911053597927\n",
      "Epoch: 2380/20000, Loss: 0.0002873823104892\n",
      "Epoch: 2390/20000, Loss: 0.0002882682892960\n",
      "Epoch: 2400/20000, Loss: 0.0002802006201819\n",
      "Epoch: 2410/20000, Loss: 0.0002766721299849\n",
      "Epoch: 2420/20000, Loss: 0.0002730599953793\n",
      "Epoch: 2430/20000, Loss: 0.0002695392759051\n",
      "Epoch: 2440/20000, Loss: 0.0002660795289557\n",
      "Epoch: 2450/20000, Loss: 0.0002626788918860\n",
      "Epoch: 2460/20000, Loss: 0.0002593506360427\n",
      "Epoch: 2470/20000, Loss: 0.0002560761640780\n",
      "Epoch: 2480/20000, Loss: 0.0002528463373892\n",
      "Epoch: 2490/20000, Loss: 0.0002496642700862\n",
      "Epoch: 2500/20000, Loss: 0.0002465279831085\n",
      "Epoch: 2510/20000, Loss: 0.0002434363996144\n",
      "Epoch: 2520/20000, Loss: 0.0002403890684946\n",
      "Epoch: 2530/20000, Loss: 0.0002373852184974\n",
      "Epoch: 2540/20000, Loss: 0.0002344240056118\n",
      "Epoch: 2550/20000, Loss: 0.0002315048477612\n",
      "Epoch: 2560/20000, Loss: 0.0002286278613610\n",
      "Epoch: 2570/20000, Loss: 0.0002259152533952\n",
      "Epoch: 2580/20000, Loss: 0.0002276414597873\n",
      "Epoch: 2590/20000, Loss: 0.0002219442394562\n",
      "Epoch: 2600/20000, Loss: 0.0002180748851970\n",
      "Epoch: 2610/20000, Loss: 0.0002150467626052\n",
      "Epoch: 2620/20000, Loss: 0.0002122822479578\n",
      "Epoch: 2630/20000, Loss: 0.0002096446696669\n",
      "Epoch: 2640/20000, Loss: 0.0002070846676361\n",
      "Epoch: 2650/20000, Loss: 0.0002045614237431\n",
      "Epoch: 2660/20000, Loss: 0.0002020688698394\n",
      "Epoch: 2670/20000, Loss: 0.0001996151258936\n",
      "Epoch: 2680/20000, Loss: 0.0001971967285499\n",
      "Epoch: 2690/20000, Loss: 0.0001948161370819\n",
      "Epoch: 2700/20000, Loss: 0.0001925539399963\n",
      "Epoch: 2710/20000, Loss: 0.0001932163722813\n",
      "Epoch: 2720/20000, Loss: 0.0001879691262729\n",
      "Epoch: 2730/20000, Loss: 0.0001865569793154\n",
      "Epoch: 2740/20000, Loss: 0.0001835473376559\n",
      "Epoch: 2750/20000, Loss: 0.0001814850256778\n",
      "Epoch: 2760/20000, Loss: 0.0001792719849618\n",
      "Epoch: 2770/20000, Loss: 0.0001771659008227\n",
      "Epoch: 2780/20000, Loss: 0.0001751063973643\n",
      "Epoch: 2790/20000, Loss: 0.0001730768999550\n",
      "Epoch: 2800/20000, Loss: 0.0001710791984806\n",
      "Epoch: 2810/20000, Loss: 0.0001691127836239\n",
      "Epoch: 2820/20000, Loss: 0.0001671766221989\n",
      "Epoch: 2830/20000, Loss: 0.0001652695500525\n",
      "Epoch: 2840/20000, Loss: 0.0001633911742829\n",
      "Epoch: 2850/20000, Loss: 0.0001615404908080\n",
      "Epoch: 2860/20000, Loss: 0.0001597166119609\n",
      "Epoch: 2870/20000, Loss: 0.0001579186646268\n",
      "Epoch: 2880/20000, Loss: 0.0001561477547511\n",
      "Epoch: 2890/20000, Loss: 0.0001665225136094\n",
      "Epoch: 2900/20000, Loss: 0.0001565208513057\n",
      "Epoch: 2910/20000, Loss: 0.0001525935513200\n",
      "Epoch: 2920/20000, Loss: 0.0001496629702160\n",
      "Epoch: 2930/20000, Loss: 0.0001478047779528\n",
      "Epoch: 2940/20000, Loss: 0.0001462288346374\n",
      "Epoch: 2950/20000, Loss: 0.0001446359528927\n",
      "Epoch: 2960/20000, Loss: 0.0001430512929801\n",
      "Epoch: 2970/20000, Loss: 0.0001415176375303\n",
      "Epoch: 2980/20000, Loss: 0.0001400026085321\n",
      "Epoch: 2990/20000, Loss: 0.0001385123323416\n",
      "Epoch: 3000/20000, Loss: 0.0001370456448058\n",
      "Epoch: 3010/20000, Loss: 0.0001356026477879\n",
      "Epoch: 3020/20000, Loss: 0.0001341827301076\n",
      "Epoch: 3030/20000, Loss: 0.0001330258528469\n",
      "Epoch: 3040/20000, Loss: 0.0001316766283708\n",
      "Epoch: 3050/20000, Loss: 0.0001301953161601\n",
      "Epoch: 3060/20000, Loss: 0.0001288301282329\n",
      "Epoch: 3070/20000, Loss: 0.0001274092355743\n",
      "Epoch: 3080/20000, Loss: 0.0001261238503503\n",
      "Epoch: 3090/20000, Loss: 0.0001248394255526\n",
      "Epoch: 3100/20000, Loss: 0.0001235752715729\n",
      "Epoch: 3110/20000, Loss: 0.0001223294966621\n",
      "Epoch: 3120/20000, Loss: 0.0001211094349856\n",
      "Epoch: 3130/20000, Loss: 0.0001202255007229\n",
      "Epoch: 3140/20000, Loss: 0.0001194790893351\n",
      "Epoch: 3150/20000, Loss: 0.0001186209992738\n",
      "Epoch: 3160/20000, Loss: 0.0001168339440483\n",
      "Epoch: 3170/20000, Loss: 0.0001154477868113\n",
      "Epoch: 3180/20000, Loss: 0.0001142158216680\n",
      "Epoch: 3190/20000, Loss: 0.0001130562523031\n",
      "Epoch: 3200/20000, Loss: 0.0001119694934459\n",
      "Epoch: 3210/20000, Loss: 0.0001108833603212\n",
      "Epoch: 3220/20000, Loss: 0.0001098220527638\n",
      "Epoch: 3230/20000, Loss: 0.0001088975768653\n",
      "Epoch: 3240/20000, Loss: 0.0001079100838979\n",
      "Epoch: 3250/20000, Loss: 0.0001068031560862\n",
      "Epoch: 3260/20000, Loss: 0.0001058145935531\n",
      "Epoch: 3270/20000, Loss: 0.0001048686463037\n",
      "Epoch: 3280/20000, Loss: 0.0001038466070895\n",
      "Epoch: 3290/20000, Loss: 0.0001028457627399\n",
      "Epoch: 3300/20000, Loss: 0.0001018743569148\n",
      "Epoch: 3310/20000, Loss: 0.0001009241968859\n",
      "Epoch: 3320/20000, Loss: 0.0000999886178761\n",
      "Epoch: 3330/20000, Loss: 0.0000990587941487\n",
      "Epoch: 3340/20000, Loss: 0.0000981347693596\n",
      "Epoch: 3350/20000, Loss: 0.0000972104899120\n",
      "Epoch: 3360/20000, Loss: 0.0000962764606811\n",
      "Epoch: 3370/20000, Loss: 0.0000953120106715\n",
      "Epoch: 3380/20000, Loss: 0.0000942826445680\n",
      "Epoch: 3390/20000, Loss: 0.0000932465336518\n",
      "Epoch: 3400/20000, Loss: 0.0001057292902260\n",
      "Epoch: 3410/20000, Loss: 0.0000958758319030\n",
      "Epoch: 3420/20000, Loss: 0.0000906791319721\n",
      "Epoch: 3430/20000, Loss: 0.0000902903484530\n",
      "Epoch: 3440/20000, Loss: 0.0000888653521542\n",
      "Epoch: 3450/20000, Loss: 0.0000880199368112\n",
      "Epoch: 3460/20000, Loss: 0.0000871755473781\n",
      "Epoch: 3470/20000, Loss: 0.0000863634340931\n",
      "Epoch: 3480/20000, Loss: 0.0000855632752064\n",
      "Epoch: 3490/20000, Loss: 0.0000847802948556\n",
      "Epoch: 3500/20000, Loss: 0.0000840038992465\n",
      "Epoch: 3510/20000, Loss: 0.0000832384976093\n",
      "Epoch: 3520/20000, Loss: 0.0000830905337352\n",
      "Epoch: 3530/20000, Loss: 0.0000820398636279\n",
      "Epoch: 3540/20000, Loss: 0.0000811446734588\n",
      "Epoch: 3550/20000, Loss: 0.0000803393704700\n",
      "Epoch: 3560/20000, Loss: 0.0000795831801952\n",
      "Epoch: 3570/20000, Loss: 0.0000788801189628\n",
      "Epoch: 3580/20000, Loss: 0.0000781730705057\n",
      "Epoch: 3590/20000, Loss: 0.0000774797081249\n",
      "Epoch: 3600/20000, Loss: 0.0000768206373323\n",
      "Epoch: 3610/20000, Loss: 0.0000786115269875\n",
      "Epoch: 3620/20000, Loss: 0.0000756542649469\n",
      "Epoch: 3630/20000, Loss: 0.0000750070030335\n",
      "Epoch: 3640/20000, Loss: 0.0000741653930163\n",
      "Epoch: 3650/20000, Loss: 0.0000734915738576\n",
      "Epoch: 3660/20000, Loss: 0.0000728492668713\n",
      "Epoch: 3670/20000, Loss: 0.0000722017648513\n",
      "Epoch: 3680/20000, Loss: 0.0000715629212209\n",
      "Epoch: 3690/20000, Loss: 0.0000709358791937\n",
      "Epoch: 3700/20000, Loss: 0.0000703158948454\n",
      "Epoch: 3710/20000, Loss: 0.0000698193689459\n",
      "Epoch: 3720/20000, Loss: 0.0000773520223447\n",
      "Epoch: 3730/20000, Loss: 0.0000685257982695\n",
      "Epoch: 3740/20000, Loss: 0.0000680922021274\n",
      "Epoch: 3750/20000, Loss: 0.0000675284609315\n",
      "Epoch: 3760/20000, Loss: 0.0000668838256388\n",
      "Epoch: 3770/20000, Loss: 0.0000662338061375\n",
      "Epoch: 3780/20000, Loss: 0.0000656536431052\n",
      "Epoch: 3790/20000, Loss: 0.0000651037116768\n",
      "Epoch: 3800/20000, Loss: 0.0000645508480375\n",
      "Epoch: 3810/20000, Loss: 0.0000640090365778\n",
      "Epoch: 3820/20000, Loss: 0.0000634729221929\n",
      "Epoch: 3830/20000, Loss: 0.0000629423375358\n",
      "Epoch: 3840/20000, Loss: 0.0000624173771939\n",
      "Epoch: 3850/20000, Loss: 0.0000618978010607\n",
      "Epoch: 3860/20000, Loss: 0.0000613835654804\n",
      "Epoch: 3870/20000, Loss: 0.0000608746049693\n",
      "Epoch: 3880/20000, Loss: 0.0000603746084380\n",
      "Epoch: 3890/20000, Loss: 0.0000604504748480\n",
      "Epoch: 3900/20000, Loss: 0.0000609979106230\n",
      "Epoch: 3910/20000, Loss: 0.0000606508037890\n",
      "Epoch: 3920/20000, Loss: 0.0000589566152485\n",
      "Epoch: 3930/20000, Loss: 0.0000581024323765\n",
      "Epoch: 3940/20000, Loss: 0.0000575396370550\n",
      "Epoch: 3950/20000, Loss: 0.0000570474148844\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 3960/20000, Loss: 0.0000565716400160\n",
      "Epoch: 3970/20000, Loss: 0.0000561024280614\n",
      "Epoch: 3980/20000, Loss: 0.0000556431805308\n",
      "Epoch: 3990/20000, Loss: 0.0000551929806534\n",
      "Epoch: 4000/20000, Loss: 0.0000547458403162\n",
      "Epoch: 4010/20000, Loss: 0.0000543032838323\n",
      "Epoch: 4020/20000, Loss: 0.0000538645617780\n",
      "Epoch: 4030/20000, Loss: 0.0000534298451385\n",
      "Epoch: 4040/20000, Loss: 0.0000529989993083\n",
      "Epoch: 4050/20000, Loss: 0.0000525718860445\n",
      "Epoch: 4060/20000, Loss: 0.0000521485599165\n",
      "Epoch: 4070/20000, Loss: 0.0000517288863193\n",
      "Epoch: 4080/20000, Loss: 0.0000513128215971\n",
      "Epoch: 4090/20000, Loss: 0.0000509003548359\n",
      "Epoch: 4100/20000, Loss: 0.0000504917079525\n",
      "Epoch: 4110/20000, Loss: 0.0000501315334986\n",
      "Epoch: 4120/20000, Loss: 0.0000600698513153\n",
      "Epoch: 4130/20000, Loss: 0.0000499347224832\n",
      "Epoch: 4140/20000, Loss: 0.0000489288395329\n",
      "Epoch: 4150/20000, Loss: 0.0000486599674332\n",
      "Epoch: 4160/20000, Loss: 0.0000482952382299\n",
      "Epoch: 4170/20000, Loss: 0.0000478367001051\n",
      "Epoch: 4180/20000, Loss: 0.0000474102562293\n",
      "Epoch: 4190/20000, Loss: 0.0000470144477731\n",
      "Epoch: 4200/20000, Loss: 0.0000466332130600\n",
      "Epoch: 4210/20000, Loss: 0.0000462596944999\n",
      "Epoch: 4220/20000, Loss: 0.0000458913273178\n",
      "Epoch: 4230/20000, Loss: 0.0000455263143522\n",
      "Epoch: 4240/20000, Loss: 0.0000451638879895\n",
      "Epoch: 4250/20000, Loss: 0.0000448044193035\n",
      "Epoch: 4260/20000, Loss: 0.0000444477773272\n",
      "Epoch: 4270/20000, Loss: 0.0000440939911641\n",
      "Epoch: 4280/20000, Loss: 0.0000437430026068\n",
      "Epoch: 4290/20000, Loss: 0.0000433948443970\n",
      "Epoch: 4300/20000, Loss: 0.0000430494292232\n",
      "Epoch: 4310/20000, Loss: 0.0000427067861892\n",
      "Epoch: 4320/20000, Loss: 0.0000423668971052\n",
      "Epoch: 4330/20000, Loss: 0.0000420296673838\n",
      "Epoch: 4340/20000, Loss: 0.0000416951261286\n",
      "Epoch: 4350/20000, Loss: 0.0000413632114942\n",
      "Epoch: 4360/20000, Loss: 0.0000410339598602\n",
      "Epoch: 4370/20000, Loss: 0.0000407160950999\n",
      "Epoch: 4380/20000, Loss: 0.0000436868031102\n",
      "Epoch: 4390/20000, Loss: 0.0000482754367113\n",
      "Epoch: 4400/20000, Loss: 0.0000426176629844\n",
      "Epoch: 4410/20000, Loss: 0.0000399056989409\n",
      "Epoch: 4420/20000, Loss: 0.0000391463363485\n",
      "Epoch: 4430/20000, Loss: 0.0000388943190046\n",
      "Epoch: 4440/20000, Loss: 0.0000385690727853\n",
      "Epoch: 4450/20000, Loss: 0.0000382385987905\n",
      "Epoch: 4460/20000, Loss: 0.0000379253542633\n",
      "Epoch: 4470/20000, Loss: 0.0000376216521545\n",
      "Epoch: 4480/20000, Loss: 0.0000373226976080\n",
      "Epoch: 4490/20000, Loss: 0.0000370269408450\n",
      "Epoch: 4500/20000, Loss: 0.0000367339634977\n",
      "Epoch: 4510/20000, Loss: 0.0000364434235962\n",
      "Epoch: 4520/20000, Loss: 0.0000361550737580\n",
      "Epoch: 4530/20000, Loss: 0.0000358689685527\n",
      "Epoch: 4540/20000, Loss: 0.0000355850970664\n",
      "Epoch: 4550/20000, Loss: 0.0000353034301952\n",
      "Epoch: 4560/20000, Loss: 0.0000350239060936\n",
      "Epoch: 4570/20000, Loss: 0.0000347465538653\n",
      "Epoch: 4580/20000, Loss: 0.0000344713444065\n",
      "Epoch: 4590/20000, Loss: 0.0000341982668033\n",
      "Epoch: 4600/20000, Loss: 0.0000339272810379\n",
      "Epoch: 4610/20000, Loss: 0.0000336584162142\n",
      "Epoch: 4620/20000, Loss: 0.0000333916323143\n",
      "Epoch: 4630/20000, Loss: 0.0000331268893206\n",
      "Epoch: 4640/20000, Loss: 0.0000328642236127\n",
      "Epoch: 4650/20000, Loss: 0.0000326036242768\n",
      "Epoch: 4660/20000, Loss: 0.0000323485655827\n",
      "Epoch: 4670/20000, Loss: 0.0000332166382577\n",
      "Epoch: 4680/20000, Loss: 0.0000322020969179\n",
      "Epoch: 4690/20000, Loss: 0.0000317167323374\n",
      "Epoch: 4700/20000, Loss: 0.0000319675054925\n",
      "Epoch: 4710/20000, Loss: 0.0000315521574521\n",
      "Epoch: 4720/20000, Loss: 0.0000310000723402\n",
      "Epoch: 4730/20000, Loss: 0.0000306472211378\n",
      "Epoch: 4740/20000, Loss: 0.0000303832784994\n",
      "Epoch: 4750/20000, Loss: 0.0000301399613818\n",
      "Epoch: 4760/20000, Loss: 0.0000299017447105\n",
      "Epoch: 4770/20000, Loss: 0.0000296658654406\n",
      "Epoch: 4780/20000, Loss: 0.0000294318069791\n",
      "Epoch: 4790/20000, Loss: 0.0000291997457680\n",
      "Epoch: 4800/20000, Loss: 0.0000289697818516\n",
      "Epoch: 4810/20000, Loss: 0.0000287417042273\n",
      "Epoch: 4820/20000, Loss: 0.0000285153928417\n",
      "Epoch: 4830/20000, Loss: 0.0000282909149973\n",
      "Epoch: 4840/20000, Loss: 0.0000280681942968\n",
      "Epoch: 4850/20000, Loss: 0.0000278472525679\n",
      "Epoch: 4860/20000, Loss: 0.0000276280643448\n",
      "Epoch: 4870/20000, Loss: 0.0000274106423603\n",
      "Epoch: 4880/20000, Loss: 0.0000271949575108\n",
      "Epoch: 4890/20000, Loss: 0.0000269809897873\n",
      "Epoch: 4900/20000, Loss: 0.0000267687482847\n",
      "Epoch: 4910/20000, Loss: 0.0000265582166321\n",
      "Epoch: 4920/20000, Loss: 0.0000263493784587\n",
      "Epoch: 4930/20000, Loss: 0.0000261422283074\n",
      "Epoch: 4940/20000, Loss: 0.0000259368262050\n",
      "Epoch: 4950/20000, Loss: 0.0000257434476225\n",
      "Epoch: 4960/20000, Loss: 0.0000283095123450\n",
      "Epoch: 4970/20000, Loss: 0.0000307063637592\n",
      "Epoch: 4980/20000, Loss: 0.0000265412163571\n",
      "Epoch: 4990/20000, Loss: 0.0000257511037489\n",
      "Epoch: 5000/20000, Loss: 0.0000251204728556\n",
      "Epoch: 5010/20000, Loss: 0.0000247008010774\n",
      "Epoch: 5020/20000, Loss: 0.0000244232523983\n",
      "Epoch: 5030/20000, Loss: 0.0000242023688770\n",
      "Epoch: 5040/20000, Loss: 0.0000240019689954\n",
      "Epoch: 5050/20000, Loss: 0.0000238109951169\n",
      "Epoch: 5060/20000, Loss: 0.0000236255018535\n",
      "Epoch: 5070/20000, Loss: 0.0000234423823713\n",
      "Epoch: 5080/20000, Loss: 0.0000232603088079\n",
      "Epoch: 5090/20000, Loss: 0.0000230799778365\n",
      "Epoch: 5100/20000, Loss: 0.0000229011711781\n",
      "Epoch: 5110/20000, Loss: 0.0000227238760999\n",
      "Epoch: 5120/20000, Loss: 0.0000225480689551\n",
      "Epoch: 5130/20000, Loss: 0.0000223737351916\n",
      "Epoch: 5140/20000, Loss: 0.0000222008802666\n",
      "Epoch: 5150/20000, Loss: 0.0000220294823521\n",
      "Epoch: 5160/20000, Loss: 0.0000218595359911\n",
      "Epoch: 5170/20000, Loss: 0.0000216910302697\n",
      "Epoch: 5180/20000, Loss: 0.0000215239597310\n",
      "Epoch: 5190/20000, Loss: 0.0000213583280129\n",
      "Epoch: 5200/20000, Loss: 0.0000211940860027\n",
      "Epoch: 5210/20000, Loss: 0.0000210312518902\n",
      "Epoch: 5220/20000, Loss: 0.0000208709934668\n",
      "Epoch: 5230/20000, Loss: 0.0000209486370295\n",
      "Epoch: 5240/20000, Loss: 0.0000362059799954\n",
      "Epoch: 5250/20000, Loss: 0.0000243194881477\n",
      "Epoch: 5260/20000, Loss: 0.0000218274180952\n",
      "Epoch: 5270/20000, Loss: 0.0000207065695577\n",
      "Epoch: 5280/20000, Loss: 0.0000201481598197\n",
      "Epoch: 5290/20000, Loss: 0.0000198648885998\n",
      "Epoch: 5300/20000, Loss: 0.0000196738019440\n",
      "Epoch: 5310/20000, Loss: 0.0000195097945834\n",
      "Epoch: 5320/20000, Loss: 0.0000193554278667\n",
      "Epoch: 5330/20000, Loss: 0.0000192068746401\n",
      "Epoch: 5340/20000, Loss: 0.0000190622795344\n",
      "Epoch: 5350/20000, Loss: 0.0000189191414393\n",
      "Epoch: 5360/20000, Loss: 0.0000187770510820\n",
      "Epoch: 5370/20000, Loss: 0.0000186363995454\n",
      "Epoch: 5380/20000, Loss: 0.0000184969339898\n",
      "Epoch: 5390/20000, Loss: 0.0000183587308129\n",
      "Epoch: 5400/20000, Loss: 0.0000182217627298\n",
      "Epoch: 5410/20000, Loss: 0.0000180859951797\n",
      "Epoch: 5420/20000, Loss: 0.0000179514408956\n",
      "Epoch: 5430/20000, Loss: 0.0000178180907824\n",
      "Epoch: 5440/20000, Loss: 0.0000176858957275\n",
      "Epoch: 5450/20000, Loss: 0.0000175549030246\n",
      "Epoch: 5460/20000, Loss: 0.0000174250562850\n",
      "Epoch: 5470/20000, Loss: 0.0000172963991645\n",
      "Epoch: 5480/20000, Loss: 0.0000171688698174\n",
      "Epoch: 5490/20000, Loss: 0.0000170425282704\n",
      "Epoch: 5500/20000, Loss: 0.0000169214436028\n",
      "Epoch: 5510/20000, Loss: 0.0000179014296009\n",
      "Epoch: 5520/20000, Loss: 0.0000167307098309\n",
      "Epoch: 5530/20000, Loss: 0.0000168716105691\n",
      "Epoch: 5540/20000, Loss: 0.0000164557168318\n",
      "Epoch: 5550/20000, Loss: 0.0000164246303029\n",
      "Epoch: 5560/20000, Loss: 0.0000162908600032\n",
      "Epoch: 5570/20000, Loss: 0.0000161285624927\n",
      "Epoch: 5580/20000, Loss: 0.0000159870796779\n",
      "Epoch: 5590/20000, Loss: 0.0000158621860464\n",
      "Epoch: 5600/20000, Loss: 0.0000157459180627\n",
      "Epoch: 5610/20000, Loss: 0.0000156334208441\n",
      "Epoch: 5620/20000, Loss: 0.0000155219440785\n",
      "Epoch: 5630/20000, Loss: 0.0000154110421136\n",
      "Epoch: 5640/20000, Loss: 0.0000153014407260\n",
      "Epoch: 5650/20000, Loss: 0.0000151928807099\n",
      "Epoch: 5660/20000, Loss: 0.0000150852920342\n",
      "Epoch: 5670/20000, Loss: 0.0000149786992552\n",
      "Epoch: 5680/20000, Loss: 0.0000148730914589\n",
      "Epoch: 5690/20000, Loss: 0.0000147684404510\n",
      "Epoch: 5700/20000, Loss: 0.0000146647262227\n",
      "Epoch: 5710/20000, Loss: 0.0000145619715113\n",
      "Epoch: 5720/20000, Loss: 0.0000144601535794\n",
      "Epoch: 5730/20000, Loss: 0.0000143592451423\n",
      "Epoch: 5740/20000, Loss: 0.0000142592571137\n",
      "Epoch: 5750/20000, Loss: 0.0000141601949508\n",
      "Epoch: 5760/20000, Loss: 0.0000140620231832\n",
      "Epoch: 5770/20000, Loss: 0.0000139648636832\n",
      "Epoch: 5780/20000, Loss: 0.0000138783070724\n",
      "Epoch: 5790/20000, Loss: 0.0000156589212565\n",
      "Epoch: 5800/20000, Loss: 0.0000144529358295\n",
      "Epoch: 5810/20000, Loss: 0.0000138168334161\n",
      "Epoch: 5820/20000, Loss: 0.0000136330281748\n",
      "Epoch: 5830/20000, Loss: 0.0000134760884976\n",
      "Epoch: 5840/20000, Loss: 0.0000133682970045\n",
      "Epoch: 5850/20000, Loss: 0.0000132683271659\n",
      "Epoch: 5860/20000, Loss: 0.0000131631368276\n",
      "Epoch: 5870/20000, Loss: 0.0000130597509269\n",
      "Epoch: 5880/20000, Loss: 0.0000129683867272\n",
      "Epoch: 5890/20000, Loss: 0.0000128825449792\n",
      "Epoch: 5900/20000, Loss: 0.0000127958592202\n",
      "Epoch: 5910/20000, Loss: 0.0000127108924062\n",
      "Epoch: 5920/20000, Loss: 0.0000126264912979\n",
      "Epoch: 5930/20000, Loss: 0.0000125430069602\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 5940/20000, Loss: 0.0000124602693177\n",
      "Epoch: 5950/20000, Loss: 0.0000123782683659\n",
      "Epoch: 5960/20000, Loss: 0.0000122970359371\n",
      "Epoch: 5970/20000, Loss: 0.0000122165374705\n",
      "Epoch: 5980/20000, Loss: 0.0000121367511383\n",
      "Epoch: 5990/20000, Loss: 0.0000120576887639\n",
      "Epoch: 6000/20000, Loss: 0.0000119793430713\n",
      "Epoch: 6010/20000, Loss: 0.0000119017131510\n",
      "Epoch: 6020/20000, Loss: 0.0000118247817227\n",
      "Epoch: 6030/20000, Loss: 0.0000117485860756\n",
      "Epoch: 6040/20000, Loss: 0.0000116813589557\n",
      "Epoch: 6050/20000, Loss: 0.0000139671901707\n",
      "Epoch: 6060/20000, Loss: 0.0000154638419190\n",
      "Epoch: 6070/20000, Loss: 0.0000123951194837\n",
      "Epoch: 6080/20000, Loss: 0.0000121474904518\n",
      "Epoch: 6090/20000, Loss: 0.0000117295630844\n",
      "Epoch: 6100/20000, Loss: 0.0000114110589493\n",
      "Epoch: 6110/20000, Loss: 0.0000112374718810\n",
      "Epoch: 6120/20000, Loss: 0.0000111306071631\n",
      "Epoch: 6130/20000, Loss: 0.0000110472938104\n",
      "Epoch: 6140/20000, Loss: 0.0000109731472548\n",
      "Epoch: 6150/20000, Loss: 0.0000109037209768\n",
      "Epoch: 6160/20000, Loss: 0.0000108365056803\n",
      "Epoch: 6170/20000, Loss: 0.0000107697151179\n",
      "Epoch: 6180/20000, Loss: 0.0000107034502435\n",
      "Epoch: 6190/20000, Loss: 0.0000106379411591\n",
      "Epoch: 6200/20000, Loss: 0.0000105729841380\n",
      "Epoch: 6210/20000, Loss: 0.0000105085991891\n",
      "Epoch: 6220/20000, Loss: 0.0000104447926788\n",
      "Epoch: 6230/20000, Loss: 0.0000103815673356\n",
      "Epoch: 6240/20000, Loss: 0.0000103188895082\n",
      "Epoch: 6250/20000, Loss: 0.0000102567619251\n",
      "Epoch: 6260/20000, Loss: 0.0000101951864053\n",
      "Epoch: 6270/20000, Loss: 0.0000101341493064\n",
      "Epoch: 6280/20000, Loss: 0.0000100736506283\n",
      "Epoch: 6290/20000, Loss: 0.0000100136740002\n",
      "Epoch: 6300/20000, Loss: 0.0000099542285170\n",
      "Epoch: 6310/20000, Loss: 0.0000098953496490\n",
      "Epoch: 6320/20000, Loss: 0.0000098416976471\n",
      "Epoch: 6330/20000, Loss: 0.0000106424995465\n",
      "Epoch: 6340/20000, Loss: 0.0000123347972476\n",
      "Epoch: 6350/20000, Loss: 0.0000128156943902\n",
      "Epoch: 6360/20000, Loss: 0.0000107798405224\n",
      "Epoch: 6370/20000, Loss: 0.0000099845246950\n",
      "Epoch: 6380/20000, Loss: 0.0000096753101388\n",
      "Epoch: 6390/20000, Loss: 0.0000095197319752\n",
      "Epoch: 6400/20000, Loss: 0.0000094191145763\n",
      "Epoch: 6410/20000, Loss: 0.0000093490189101\n",
      "Epoch: 6420/20000, Loss: 0.0000092955497166\n",
      "Epoch: 6430/20000, Loss: 0.0000092430036602\n",
      "Epoch: 6440/20000, Loss: 0.0000091895935839\n",
      "Epoch: 6450/20000, Loss: 0.0000091378906291\n",
      "Epoch: 6460/20000, Loss: 0.0000090863377409\n",
      "Epoch: 6470/20000, Loss: 0.0000090353942142\n",
      "Epoch: 6480/20000, Loss: 0.0000089848745120\n",
      "Epoch: 6490/20000, Loss: 0.0000089347895482\n",
      "Epoch: 6500/20000, Loss: 0.0000088851375040\n",
      "Epoch: 6510/20000, Loss: 0.0000088359092842\n",
      "Epoch: 6520/20000, Loss: 0.0000087870848802\n",
      "Epoch: 6530/20000, Loss: 0.0000087386788437\n",
      "Epoch: 6540/20000, Loss: 0.0000086906784418\n",
      "Epoch: 6550/20000, Loss: 0.0000086430845840\n",
      "Epoch: 6560/20000, Loss: 0.0000085958763520\n",
      "Epoch: 6570/20000, Loss: 0.0000085491628852\n",
      "Epoch: 6580/20000, Loss: 0.0000085100828073\n",
      "Epoch: 6590/20000, Loss: 0.0000098107584563\n",
      "Epoch: 6600/20000, Loss: 0.0000085431202024\n",
      "Epoch: 6610/20000, Loss: 0.0000099019980553\n",
      "Epoch: 6620/20000, Loss: 0.0000089791947175\n",
      "Epoch: 6630/20000, Loss: 0.0000085475548985\n",
      "Epoch: 6640/20000, Loss: 0.0000083669865489\n",
      "Epoch: 6650/20000, Loss: 0.0000082591623141\n",
      "Epoch: 6660/20000, Loss: 0.0000081767984739\n",
      "Epoch: 6670/20000, Loss: 0.0000081166999735\n",
      "Epoch: 6680/20000, Loss: 0.0000080735062511\n",
      "Epoch: 6690/20000, Loss: 0.0000080315858213\n",
      "Epoch: 6700/20000, Loss: 0.0000079887749962\n",
      "Epoch: 6710/20000, Loss: 0.0000079474548329\n",
      "Epoch: 6720/20000, Loss: 0.0000079062228906\n",
      "Epoch: 6730/20000, Loss: 0.0000078654402387\n",
      "Epoch: 6740/20000, Loss: 0.0000078250168372\n",
      "Epoch: 6750/20000, Loss: 0.0000077848935689\n",
      "Epoch: 6760/20000, Loss: 0.0000077451113611\n",
      "Epoch: 6770/20000, Loss: 0.0000077056365626\n",
      "Epoch: 6780/20000, Loss: 0.0000076664737207\n",
      "Epoch: 6790/20000, Loss: 0.0000076276219261\n",
      "Epoch: 6800/20000, Loss: 0.0000075890743574\n",
      "Epoch: 6810/20000, Loss: 0.0000075508201007\n",
      "Epoch: 6820/20000, Loss: 0.0000075128755270\n",
      "Epoch: 6830/20000, Loss: 0.0000074754530033\n",
      "Epoch: 6840/20000, Loss: 0.0000074619192674\n",
      "Epoch: 6850/20000, Loss: 0.0000119979740703\n",
      "Epoch: 6860/20000, Loss: 0.0000148354156408\n",
      "Epoch: 6870/20000, Loss: 0.0000087034013632\n",
      "Epoch: 6880/20000, Loss: 0.0000077235645222\n",
      "Epoch: 6890/20000, Loss: 0.0000073898818300\n",
      "Epoch: 6900/20000, Loss: 0.0000072518773777\n",
      "Epoch: 6910/20000, Loss: 0.0000071971953730\n",
      "Epoch: 6920/20000, Loss: 0.0000071674940045\n",
      "Epoch: 6930/20000, Loss: 0.0000071330755418\n",
      "Epoch: 6940/20000, Loss: 0.0000070934697760\n",
      "Epoch: 6950/20000, Loss: 0.0000070585128924\n",
      "Epoch: 6960/20000, Loss: 0.0000070245905590\n",
      "Epoch: 6970/20000, Loss: 0.0000069906809586\n",
      "Epoch: 6980/20000, Loss: 0.0000069572538450\n",
      "Epoch: 6990/20000, Loss: 0.0000069240663834\n",
      "Epoch: 7000/20000, Loss: 0.0000068911208473\n",
      "Epoch: 7010/20000, Loss: 0.0000068584208748\n",
      "Epoch: 7020/20000, Loss: 0.0000068259637374\n",
      "Epoch: 7030/20000, Loss: 0.0000067937116910\n",
      "Epoch: 7040/20000, Loss: 0.0000067617115747\n",
      "Epoch: 7050/20000, Loss: 0.0000067299220063\n",
      "Epoch: 7060/20000, Loss: 0.0000066983370743\n",
      "Epoch: 7070/20000, Loss: 0.0000066669617809\n",
      "Epoch: 7080/20000, Loss: 0.0000066358015829\n",
      "Epoch: 7090/20000, Loss: 0.0000066049278757\n",
      "Epoch: 7100/20000, Loss: 0.0000065889880716\n",
      "Epoch: 7110/20000, Loss: 0.0000106879570012\n",
      "Epoch: 7120/20000, Loss: 0.0000156066416821\n",
      "Epoch: 7130/20000, Loss: 0.0000093263679446\n",
      "Epoch: 7140/20000, Loss: 0.0000076560936577\n",
      "Epoch: 7150/20000, Loss: 0.0000068418162300\n",
      "Epoch: 7160/20000, Loss: 0.0000065341032496\n",
      "Epoch: 7170/20000, Loss: 0.0000064231758188\n",
      "Epoch: 7180/20000, Loss: 0.0000063683291955\n",
      "Epoch: 7190/20000, Loss: 0.0000063289462560\n",
      "Epoch: 7200/20000, Loss: 0.0000062951476139\n",
      "Epoch: 7210/20000, Loss: 0.0000062649664869\n",
      "Epoch: 7220/20000, Loss: 0.0000062368344516\n",
      "Epoch: 7230/20000, Loss: 0.0000062088461164\n",
      "Epoch: 7240/20000, Loss: 0.0000061809537328\n",
      "Epoch: 7250/20000, Loss: 0.0000061533787630\n",
      "Epoch: 7260/20000, Loss: 0.0000061259579525\n",
      "Epoch: 7270/20000, Loss: 0.0000060987254074\n",
      "Epoch: 7280/20000, Loss: 0.0000060716574808\n",
      "Epoch: 7290/20000, Loss: 0.0000060447687247\n",
      "Epoch: 7300/20000, Loss: 0.0000060180354922\n",
      "Epoch: 7310/20000, Loss: 0.0000059914664234\n",
      "Epoch: 7320/20000, Loss: 0.0000059650569710\n",
      "Epoch: 7330/20000, Loss: 0.0000059387984948\n",
      "Epoch: 7340/20000, Loss: 0.0000059126987253\n",
      "Epoch: 7350/20000, Loss: 0.0000058867472035\n",
      "Epoch: 7360/20000, Loss: 0.0000058609471125\n",
      "Epoch: 7370/20000, Loss: 0.0000058353380155\n",
      "Epoch: 7380/20000, Loss: 0.0000058145228650\n",
      "Epoch: 7390/20000, Loss: 0.0000066450711529\n",
      "Epoch: 7400/20000, Loss: 0.0000091060674094\n",
      "Epoch: 7410/20000, Loss: 0.0000090688927230\n",
      "Epoch: 7420/20000, Loss: 0.0000068724998528\n",
      "Epoch: 7430/20000, Loss: 0.0000060858310462\n",
      "Epoch: 7440/20000, Loss: 0.0000058220557548\n",
      "Epoch: 7450/20000, Loss: 0.0000057119727899\n",
      "Epoch: 7460/20000, Loss: 0.0000056472813412\n",
      "Epoch: 7470/20000, Loss: 0.0000056035687521\n",
      "Epoch: 7480/20000, Loss: 0.0000055750433603\n",
      "Epoch: 7490/20000, Loss: 0.0000055519535636\n",
      "Epoch: 7500/20000, Loss: 0.0000055274399529\n",
      "Epoch: 7510/20000, Loss: 0.0000055036125559\n",
      "Epoch: 7520/20000, Loss: 0.0000054800370890\n",
      "Epoch: 7530/20000, Loss: 0.0000054566216932\n",
      "Epoch: 7540/20000, Loss: 0.0000054333168009\n",
      "Epoch: 7550/20000, Loss: 0.0000054101369642\n",
      "Epoch: 7560/20000, Loss: 0.0000053870894590\n",
      "Epoch: 7570/20000, Loss: 0.0000053641556406\n",
      "Epoch: 7580/20000, Loss: 0.0000053413327805\n",
      "Epoch: 7590/20000, Loss: 0.0000053186054174\n",
      "Epoch: 7600/20000, Loss: 0.0000052959885579\n",
      "Epoch: 7610/20000, Loss: 0.0000052734767451\n",
      "Epoch: 7620/20000, Loss: 0.0000052510654314\n",
      "Epoch: 7630/20000, Loss: 0.0000052287809922\n",
      "Epoch: 7640/20000, Loss: 0.0000052078248700\n",
      "Epoch: 7650/20000, Loss: 0.0000053539902183\n",
      "Epoch: 7660/20000, Loss: 0.0000224624782277\n",
      "Epoch: 7670/20000, Loss: 0.0000052134387261\n",
      "Epoch: 7680/20000, Loss: 0.0000051570259529\n",
      "Epoch: 7690/20000, Loss: 0.0000051260726650\n",
      "Epoch: 7700/20000, Loss: 0.0000051051833907\n",
      "Epoch: 7710/20000, Loss: 0.0000050904254749\n",
      "Epoch: 7720/20000, Loss: 0.0000050684725466\n",
      "Epoch: 7730/20000, Loss: 0.0000050352778089\n",
      "Epoch: 7740/20000, Loss: 0.0000050035473578\n",
      "Epoch: 7750/20000, Loss: 0.0000049814593694\n",
      "Epoch: 7760/20000, Loss: 0.0000049605723689\n",
      "Epoch: 7770/20000, Loss: 0.0000049391301218\n",
      "Epoch: 7780/20000, Loss: 0.0000049183622650\n",
      "Epoch: 7790/20000, Loss: 0.0000048976035032\n",
      "Epoch: 7800/20000, Loss: 0.0000048769584282\n",
      "Epoch: 7810/20000, Loss: 0.0000048564165809\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 7820/20000, Loss: 0.0000048359702305\n",
      "Epoch: 7830/20000, Loss: 0.0000048156016419\n",
      "Epoch: 7840/20000, Loss: 0.0000047953126341\n",
      "Epoch: 7850/20000, Loss: 0.0000047751118473\n",
      "Epoch: 7860/20000, Loss: 0.0000047549779083\n",
      "Epoch: 7870/20000, Loss: 0.0000047349126362\n",
      "Epoch: 7880/20000, Loss: 0.0000047149324018\n",
      "Epoch: 7890/20000, Loss: 0.0000046950344768\n",
      "Epoch: 7900/20000, Loss: 0.0000046755931180\n",
      "Epoch: 7910/20000, Loss: 0.0000047177227316\n",
      "Epoch: 7920/20000, Loss: 0.0000184417167475\n",
      "Epoch: 7930/20000, Loss: 0.0000075547095548\n",
      "Epoch: 7940/20000, Loss: 0.0000054298820942\n",
      "Epoch: 7950/20000, Loss: 0.0000046725840548\n",
      "Epoch: 7960/20000, Loss: 0.0000045780602704\n",
      "Epoch: 7970/20000, Loss: 0.0000045539900384\n",
      "Epoch: 7980/20000, Loss: 0.0000045328588385\n",
      "Epoch: 7990/20000, Loss: 0.0000045145789045\n",
      "Epoch: 8000/20000, Loss: 0.0000044965254347\n",
      "Epoch: 8010/20000, Loss: 0.0000044766684368\n",
      "Epoch: 8020/20000, Loss: 0.0000044560711103\n",
      "Epoch: 8030/20000, Loss: 0.0000044367693590\n",
      "Epoch: 8040/20000, Loss: 0.0000044180305849\n",
      "Epoch: 8050/20000, Loss: 0.0000043992035899\n",
      "Epoch: 8060/20000, Loss: 0.0000043805589485\n",
      "Epoch: 8070/20000, Loss: 0.0000043619734242\n",
      "Epoch: 8080/20000, Loss: 0.0000043434652071\n",
      "Epoch: 8090/20000, Loss: 0.0000043250302042\n",
      "Epoch: 8100/20000, Loss: 0.0000043066597755\n",
      "Epoch: 8110/20000, Loss: 0.0000042883584683\n",
      "Epoch: 8120/20000, Loss: 0.0000042701162783\n",
      "Epoch: 8130/20000, Loss: 0.0000042519436647\n",
      "Epoch: 8140/20000, Loss: 0.0000042338219828\n",
      "Epoch: 8150/20000, Loss: 0.0000042157703319\n",
      "Epoch: 8160/20000, Loss: 0.0000041977823457\n",
      "Epoch: 8170/20000, Loss: 0.0000041798471102\n",
      "Epoch: 8180/20000, Loss: 0.0000041620869524\n",
      "Epoch: 8190/20000, Loss: 0.0000041598882490\n",
      "Epoch: 8200/20000, Loss: 0.0000082655069491\n",
      "Epoch: 8210/20000, Loss: 0.0000129499449031\n",
      "Epoch: 8220/20000, Loss: 0.0000069513871495\n",
      "Epoch: 8230/20000, Loss: 0.0000053307621783\n",
      "Epoch: 8240/20000, Loss: 0.0000044635344238\n",
      "Epoch: 8250/20000, Loss: 0.0000041667271944\n",
      "Epoch: 8260/20000, Loss: 0.0000040742215788\n",
      "Epoch: 8270/20000, Loss: 0.0000040334271034\n",
      "Epoch: 8280/20000, Loss: 0.0000040065306166\n",
      "Epoch: 8290/20000, Loss: 0.0000039843494051\n",
      "Epoch: 8300/20000, Loss: 0.0000039650167309\n",
      "Epoch: 8310/20000, Loss: 0.0000039476844904\n",
      "Epoch: 8320/20000, Loss: 0.0000039306723920\n",
      "Epoch: 8330/20000, Loss: 0.0000039135647967\n",
      "Epoch: 8340/20000, Loss: 0.0000038966645661\n",
      "Epoch: 8350/20000, Loss: 0.0000038798152673\n",
      "Epoch: 8360/20000, Loss: 0.0000038630473682\n",
      "Epoch: 8370/20000, Loss: 0.0000038463526835\n",
      "Epoch: 8380/20000, Loss: 0.0000038297075662\n",
      "Epoch: 8390/20000, Loss: 0.0000038131286146\n",
      "Epoch: 8400/20000, Loss: 0.0000037966001400\n",
      "Epoch: 8410/20000, Loss: 0.0000037801416966\n",
      "Epoch: 8420/20000, Loss: 0.0000037637310015\n",
      "Epoch: 8430/20000, Loss: 0.0000037473837438\n",
      "Epoch: 8440/20000, Loss: 0.0000037310890093\n",
      "Epoch: 8450/20000, Loss: 0.0000037148474803\n",
      "Epoch: 8460/20000, Loss: 0.0000036987273688\n",
      "Epoch: 8470/20000, Loss: 0.0000036877677303\n",
      "Epoch: 8480/20000, Loss: 0.0000045002234401\n",
      "Epoch: 8490/20000, Loss: 0.0000086596592155\n",
      "Epoch: 8500/20000, Loss: 0.0000075099546848\n",
      "Epoch: 8510/20000, Loss: 0.0000050203516366\n",
      "Epoch: 8520/20000, Loss: 0.0000041020502977\n",
      "Epoch: 8530/20000, Loss: 0.0000037627801248\n",
      "Epoch: 8540/20000, Loss: 0.0000036249514324\n",
      "Epoch: 8550/20000, Loss: 0.0000035702109926\n",
      "Epoch: 8560/20000, Loss: 0.0000035522407416\n",
      "Epoch: 8570/20000, Loss: 0.0000035379630390\n",
      "Epoch: 8580/20000, Loss: 0.0000035197167563\n",
      "Epoch: 8590/20000, Loss: 0.0000035041307456\n",
      "Epoch: 8600/20000, Loss: 0.0000034883780700\n",
      "Epoch: 8610/20000, Loss: 0.0000034730223888\n",
      "Epoch: 8620/20000, Loss: 0.0000034576555663\n",
      "Epoch: 8630/20000, Loss: 0.0000034424022033\n",
      "Epoch: 8640/20000, Loss: 0.0000034272143239\n",
      "Epoch: 8650/20000, Loss: 0.0000034120841974\n",
      "Epoch: 8660/20000, Loss: 0.0000033970140976\n",
      "Epoch: 8670/20000, Loss: 0.0000033820117551\n",
      "Epoch: 8680/20000, Loss: 0.0000033670626181\n",
      "Epoch: 8690/20000, Loss: 0.0000033521607747\n",
      "Epoch: 8700/20000, Loss: 0.0000033373144106\n",
      "Epoch: 8710/20000, Loss: 0.0000033225344396\n",
      "Epoch: 8720/20000, Loss: 0.0000033080370940\n",
      "Epoch: 8730/20000, Loss: 0.0000033214175801\n",
      "Epoch: 8740/20000, Loss: 0.0000091080000857\n",
      "Epoch: 8750/20000, Loss: 0.0000110736700663\n",
      "Epoch: 8760/20000, Loss: 0.0000054372039813\n",
      "Epoch: 8770/20000, Loss: 0.0000041031939872\n",
      "Epoch: 8780/20000, Loss: 0.0000035311798001\n",
      "Epoch: 8790/20000, Loss: 0.0000033018504837\n",
      "Epoch: 8800/20000, Loss: 0.0000032187754186\n",
      "Epoch: 8810/20000, Loss: 0.0000031904864954\n",
      "Epoch: 8820/20000, Loss: 0.0000031774939089\n",
      "Epoch: 8830/20000, Loss: 0.0000031624090298\n",
      "Epoch: 8840/20000, Loss: 0.0000031463350751\n",
      "Epoch: 8850/20000, Loss: 0.0000031322274481\n",
      "Epoch: 8860/20000, Loss: 0.0000031179552025\n",
      "Epoch: 8870/20000, Loss: 0.0000031040365229\n",
      "Epoch: 8880/20000, Loss: 0.0000030901217087\n",
      "Epoch: 8890/20000, Loss: 0.0000030763005725\n",
      "Epoch: 8900/20000, Loss: 0.0000030625628824\n",
      "Epoch: 8910/20000, Loss: 0.0000030488763514\n",
      "Epoch: 8920/20000, Loss: 0.0000030352457543\n",
      "Epoch: 8930/20000, Loss: 0.0000030216795039\n",
      "Epoch: 8940/20000, Loss: 0.0000030081694149\n",
      "Epoch: 8950/20000, Loss: 0.0000029947127587\n",
      "Epoch: 8960/20000, Loss: 0.0000029813077163\n",
      "Epoch: 8970/20000, Loss: 0.0000029679652016\n",
      "Epoch: 8980/20000, Loss: 0.0000029546922633\n",
      "Epoch: 8990/20000, Loss: 0.0000029440052458\n",
      "Epoch: 9000/20000, Loss: 0.0000034379761473\n",
      "Epoch: 9010/20000, Loss: 0.0000157705235324\n",
      "Epoch: 9020/20000, Loss: 0.0000079759038272\n",
      "Epoch: 9030/20000, Loss: 0.0000046099717110\n",
      "Epoch: 9040/20000, Loss: 0.0000033772887491\n",
      "Epoch: 9050/20000, Loss: 0.0000030248872918\n",
      "Epoch: 9060/20000, Loss: 0.0000029216068924\n",
      "Epoch: 9070/20000, Loss: 0.0000028719746297\n",
      "Epoch: 9080/20000, Loss: 0.0000028419333375\n",
      "Epoch: 9090/20000, Loss: 0.0000028241752261\n",
      "Epoch: 9100/20000, Loss: 0.0000028113413464\n",
      "Epoch: 9110/20000, Loss: 0.0000027981154744\n",
      "Epoch: 9120/20000, Loss: 0.0000027852604489\n",
      "Epoch: 9130/20000, Loss: 0.0000027727562610\n",
      "Epoch: 9140/20000, Loss: 0.0000027602739010\n",
      "Epoch: 9150/20000, Loss: 0.0000027478824904\n",
      "Epoch: 9160/20000, Loss: 0.0000027355729344\n",
      "Epoch: 9170/20000, Loss: 0.0000027233234050\n",
      "Epoch: 9180/20000, Loss: 0.0000027111352665\n",
      "Epoch: 9190/20000, Loss: 0.0000026990060178\n",
      "Epoch: 9200/20000, Loss: 0.0000026869374778\n",
      "Epoch: 9210/20000, Loss: 0.0000026749223707\n",
      "Epoch: 9220/20000, Loss: 0.0000026629620606\n",
      "Epoch: 9230/20000, Loss: 0.0000026510679163\n",
      "Epoch: 9240/20000, Loss: 0.0000026392133350\n",
      "Epoch: 9250/20000, Loss: 0.0000026274497031\n",
      "Epoch: 9260/20000, Loss: 0.0000026180105124\n",
      "Epoch: 9270/20000, Loss: 0.0000030234718906\n",
      "Epoch: 9280/20000, Loss: 0.0000169602080859\n",
      "Epoch: 9290/20000, Loss: 0.0000067848027356\n",
      "Epoch: 9300/20000, Loss: 0.0000041684052121\n",
      "Epoch: 9310/20000, Loss: 0.0000031262015909\n",
      "Epoch: 9320/20000, Loss: 0.0000027267642508\n",
      "Epoch: 9330/20000, Loss: 0.0000025936026304\n",
      "Epoch: 9340/20000, Loss: 0.0000025440510854\n",
      "Epoch: 9350/20000, Loss: 0.0000025241304229\n",
      "Epoch: 9360/20000, Loss: 0.0000025136091608\n",
      "Epoch: 9370/20000, Loss: 0.0000025017452572\n",
      "Epoch: 9380/20000, Loss: 0.0000024895905426\n",
      "Epoch: 9390/20000, Loss: 0.0000024785899768\n",
      "Epoch: 9400/20000, Loss: 0.0000024673979624\n",
      "Epoch: 9410/20000, Loss: 0.0000024564271826\n",
      "Epoch: 9420/20000, Loss: 0.0000024455146104\n",
      "Epoch: 9430/20000, Loss: 0.0000024346729788\n",
      "Epoch: 9440/20000, Loss: 0.0000024238952392\n",
      "Epoch: 9450/20000, Loss: 0.0000024131816190\n",
      "Epoch: 9460/20000, Loss: 0.0000024025293897\n",
      "Epoch: 9470/20000, Loss: 0.0000023919303658\n",
      "Epoch: 9480/20000, Loss: 0.0000023813834105\n",
      "Epoch: 9490/20000, Loss: 0.0000023708930712\n",
      "Epoch: 9500/20000, Loss: 0.0000023604518447\n",
      "Epoch: 9510/20000, Loss: 0.0000023500726911\n",
      "Epoch: 9520/20000, Loss: 0.0000023398940812\n",
      "Epoch: 9530/20000, Loss: 0.0000023479481115\n",
      "Epoch: 9540/20000, Loss: 0.0000062888866523\n",
      "Epoch: 9550/20000, Loss: 0.0000085375813796\n",
      "Epoch: 9560/20000, Loss: 0.0000036941837607\n",
      "Epoch: 9570/20000, Loss: 0.0000030318765312\n",
      "Epoch: 9580/20000, Loss: 0.0000026008210625\n",
      "Epoch: 9590/20000, Loss: 0.0000023775282898\n",
      "Epoch: 9600/20000, Loss: 0.0000022917431579\n",
      "Epoch: 9610/20000, Loss: 0.0000022627812086\n",
      "Epoch: 9620/20000, Loss: 0.0000022521737719\n",
      "Epoch: 9630/20000, Loss: 0.0000022424949293\n",
      "Epoch: 9640/20000, Loss: 0.0000022308622647\n",
      "Epoch: 9650/20000, Loss: 0.0000022207361781\n",
      "Epoch: 9660/20000, Loss: 0.0000022109284146\n",
      "Epoch: 9670/20000, Loss: 0.0000022012511636\n",
      "Epoch: 9680/20000, Loss: 0.0000021916773676\n",
      "Epoch: 9690/20000, Loss: 0.0000021821804239\n",
      "Epoch: 9700/20000, Loss: 0.0000021727539661\n",
      "Epoch: 9710/20000, Loss: 0.0000021633795768\n",
      "Epoch: 9720/20000, Loss: 0.0000021540636226\n",
      "Epoch: 9730/20000, Loss: 0.0000021448049665\n",
      "Epoch: 9740/20000, Loss: 0.0000021355945137\n",
      "Epoch: 9750/20000, Loss: 0.0000021264386305\n",
      "Epoch: 9760/20000, Loss: 0.0000021173291316\n",
      "Epoch: 9770/20000, Loss: 0.0000021082735202\n",
      "Epoch: 9780/20000, Loss: 0.0000020993043108\n",
      "Epoch: 9790/20000, Loss: 0.0000020930140181\n",
      "Epoch: 9800/20000, Loss: 0.0000024386997666\n",
      "Epoch: 9810/20000, Loss: 0.0000178221816896\n",
      "Epoch: 9820/20000, Loss: 0.0000039140604713\n",
      "Epoch: 9830/20000, Loss: 0.0000024387134090\n",
      "Epoch: 9840/20000, Loss: 0.0000021549408302\n",
      "Epoch: 9850/20000, Loss: 0.0000020713860067\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 9860/20000, Loss: 0.0000020598499759\n",
      "Epoch: 9870/20000, Loss: 0.0000020511463390\n",
      "Epoch: 9880/20000, Loss: 0.0000020281640900\n",
      "Epoch: 9890/20000, Loss: 0.0000020132260943\n",
      "Epoch: 9900/20000, Loss: 0.0000020056911580\n",
      "Epoch: 9910/20000, Loss: 0.0000019959575184\n",
      "Epoch: 9920/20000, Loss: 0.0000019875203634\n",
      "Epoch: 9930/20000, Loss: 0.0000019790443275\n",
      "Epoch: 9940/20000, Loss: 0.0000019706792500\n",
      "Epoch: 9950/20000, Loss: 0.0000019624164906\n",
      "Epoch: 9960/20000, Loss: 0.0000019542142127\n",
      "Epoch: 9970/20000, Loss: 0.0000019460590011\n",
      "Epoch: 9980/20000, Loss: 0.0000019379510832\n",
      "Epoch: 9990/20000, Loss: 0.0000019298875031\n",
      "Epoch: 10000/20000, Loss: 0.0000019218723537\n",
      "Epoch: 10010/20000, Loss: 0.0000019138901735\n",
      "Epoch: 10020/20000, Loss: 0.0000019059499436\n",
      "Epoch: 10030/20000, Loss: 0.0000018980873620\n",
      "Epoch: 10040/20000, Loss: 0.0000018931098111\n",
      "Epoch: 10050/20000, Loss: 0.0000023902982775\n",
      "Epoch: 10060/20000, Loss: 0.0000153398850671\n",
      "Epoch: 10070/20000, Loss: 0.0000065802987592\n",
      "Epoch: 10080/20000, Loss: 0.0000035424873204\n",
      "Epoch: 10090/20000, Loss: 0.0000024688090434\n",
      "Epoch: 10100/20000, Loss: 0.0000020723002763\n",
      "Epoch: 10110/20000, Loss: 0.0000019257815893\n",
      "Epoch: 10120/20000, Loss: 0.0000018641106863\n",
      "Epoch: 10130/20000, Loss: 0.0000018367891244\n",
      "Epoch: 10140/20000, Loss: 0.0000018261483774\n",
      "Epoch: 10150/20000, Loss: 0.0000018188420654\n",
      "Epoch: 10160/20000, Loss: 0.0000018102645072\n",
      "Epoch: 10170/20000, Loss: 0.0000018028325712\n",
      "Epoch: 10180/20000, Loss: 0.0000017954182567\n",
      "Epoch: 10190/20000, Loss: 0.0000017881476424\n",
      "Epoch: 10200/20000, Loss: 0.0000017809234123\n",
      "Epoch: 10210/20000, Loss: 0.0000017737642111\n",
      "Epoch: 10220/20000, Loss: 0.0000017666581016\n",
      "Epoch: 10230/20000, Loss: 0.0000017595964437\n",
      "Epoch: 10240/20000, Loss: 0.0000017525696876\n",
      "Epoch: 10250/20000, Loss: 0.0000017455871557\n",
      "Epoch: 10260/20000, Loss: 0.0000017386436184\n",
      "Epoch: 10270/20000, Loss: 0.0000017317405536\n",
      "Epoch: 10280/20000, Loss: 0.0000017248783024\n",
      "Epoch: 10290/20000, Loss: 0.0000017180663008\n",
      "Epoch: 10300/20000, Loss: 0.0000017124328906\n",
      "Epoch: 10310/20000, Loss: 0.0000018378664208\n",
      "Epoch: 10320/20000, Loss: 0.0000181833474926\n",
      "Epoch: 10330/20000, Loss: 0.0000027819892239\n",
      "Epoch: 10340/20000, Loss: 0.0000024013488655\n",
      "Epoch: 10350/20000, Loss: 0.0000019862247882\n",
      "Epoch: 10360/20000, Loss: 0.0000018348498543\n",
      "Epoch: 10370/20000, Loss: 0.0000017586280592\n",
      "Epoch: 10380/20000, Loss: 0.0000017016875518\n",
      "Epoch: 10390/20000, Loss: 0.0000016664647546\n",
      "Epoch: 10400/20000, Loss: 0.0000016564448515\n",
      "Epoch: 10410/20000, Loss: 0.0000016507401597\n",
      "Epoch: 10420/20000, Loss: 0.0000016425540252\n",
      "Epoch: 10430/20000, Loss: 0.0000016362802171\n",
      "Epoch: 10440/20000, Loss: 0.0000016297094589\n",
      "Epoch: 10450/20000, Loss: 0.0000016233731230\n",
      "Epoch: 10460/20000, Loss: 0.0000016171046582\n",
      "Epoch: 10470/20000, Loss: 0.0000016108735963\n",
      "Epoch: 10480/20000, Loss: 0.0000016046899418\n",
      "Epoch: 10490/20000, Loss: 0.0000015985439177\n",
      "Epoch: 10500/20000, Loss: 0.0000015924410945\n",
      "Epoch: 10510/20000, Loss: 0.0000015863633962\n",
      "Epoch: 10520/20000, Loss: 0.0000015803287852\n",
      "Epoch: 10530/20000, Loss: 0.0000015743205495\n",
      "Epoch: 10540/20000, Loss: 0.0000015683450556\n",
      "Epoch: 10550/20000, Loss: 0.0000015624074194\n",
      "Epoch: 10560/20000, Loss: 0.0000015573135670\n",
      "Epoch: 10570/20000, Loss: 0.0000017387674234\n",
      "Epoch: 10580/20000, Loss: 0.0000246515865001\n",
      "Epoch: 10590/20000, Loss: 0.0000059612825680\n",
      "Epoch: 10600/20000, Loss: 0.0000037249260458\n",
      "Epoch: 10610/20000, Loss: 0.0000019531048565\n",
      "Epoch: 10620/20000, Loss: 0.0000015537198124\n",
      "Epoch: 10630/20000, Loss: 0.0000015480787852\n",
      "Epoch: 10640/20000, Loss: 0.0000015402617919\n",
      "Epoch: 10650/20000, Loss: 0.0000015254368009\n",
      "Epoch: 10660/20000, Loss: 0.0000015143593828\n",
      "Epoch: 10670/20000, Loss: 0.0000015064598529\n",
      "Epoch: 10680/20000, Loss: 0.0000015001459133\n",
      "Epoch: 10690/20000, Loss: 0.0000014944620261\n",
      "Epoch: 10700/20000, Loss: 0.0000014888341866\n",
      "Epoch: 10710/20000, Loss: 0.0000014831897488\n",
      "Epoch: 10720/20000, Loss: 0.0000014776569515\n",
      "Epoch: 10730/20000, Loss: 0.0000014721855450\n",
      "Epoch: 10740/20000, Loss: 0.0000014667566575\n",
      "Epoch: 10750/20000, Loss: 0.0000014613667645\n",
      "Epoch: 10760/20000, Loss: 0.0000014560079080\n",
      "Epoch: 10770/20000, Loss: 0.0000014506854313\n",
      "Epoch: 10780/20000, Loss: 0.0000014453974018\n",
      "Epoch: 10790/20000, Loss: 0.0000014401300632\n",
      "Epoch: 10800/20000, Loss: 0.0000014348969444\n",
      "Epoch: 10810/20000, Loss: 0.0000014296875861\n",
      "Epoch: 10820/20000, Loss: 0.0000014245076727\n",
      "Epoch: 10830/20000, Loss: 0.0000014193474271\n",
      "Epoch: 10840/20000, Loss: 0.0000014142710825\n",
      "Epoch: 10850/20000, Loss: 0.0000014151696632\n",
      "Epoch: 10860/20000, Loss: 0.0000024964469958\n",
      "Epoch: 10870/20000, Loss: 0.0000135496766234\n",
      "Epoch: 10880/20000, Loss: 0.0000024946875783\n",
      "Epoch: 10890/20000, Loss: 0.0000023157281248\n",
      "Epoch: 10900/20000, Loss: 0.0000014753223923\n",
      "Epoch: 10910/20000, Loss: 0.0000015229102246\n",
      "Epoch: 10920/20000, Loss: 0.0000013872727322\n",
      "Epoch: 10930/20000, Loss: 0.0000013927605096\n",
      "Epoch: 10940/20000, Loss: 0.0000013759906778\n",
      "Epoch: 10950/20000, Loss: 0.0000013669764485\n",
      "Epoch: 10960/20000, Loss: 0.0000013614010186\n",
      "Epoch: 10970/20000, Loss: 0.0000013563944776\n",
      "Epoch: 10980/20000, Loss: 0.0000013515895034\n",
      "Epoch: 10990/20000, Loss: 0.0000013468101088\n",
      "Epoch: 11000/20000, Loss: 0.0000013419868310\n",
      "Epoch: 11010/20000, Loss: 0.0000013372759895\n",
      "Epoch: 11020/20000, Loss: 0.0000013326548469\n",
      "Epoch: 11030/20000, Loss: 0.0000013296260022\n",
      "Epoch: 11040/20000, Loss: 0.0000014157042187\n",
      "Epoch: 11050/20000, Loss: 0.0000094893748610\n",
      "Epoch: 11060/20000, Loss: 0.0000067086980380\n",
      "Epoch: 11070/20000, Loss: 0.0000019703927592\n",
      "Epoch: 11080/20000, Loss: 0.0000013282127611\n",
      "Epoch: 11090/20000, Loss: 0.0000014780761148\n",
      "Epoch: 11100/20000, Loss: 0.0000013744858052\n",
      "Epoch: 11110/20000, Loss: 0.0000013017950096\n",
      "Epoch: 11120/20000, Loss: 0.0000013062519884\n",
      "Epoch: 11130/20000, Loss: 0.0000012909525822\n",
      "Epoch: 11140/20000, Loss: 0.0000012858506580\n",
      "Epoch: 11150/20000, Loss: 0.0000012813246713\n",
      "Epoch: 11160/20000, Loss: 0.0000012764139683\n",
      "Epoch: 11170/20000, Loss: 0.0000012717620166\n",
      "Epoch: 11180/20000, Loss: 0.0000012672509229\n",
      "Epoch: 11190/20000, Loss: 0.0000012627959904\n",
      "Epoch: 11200/20000, Loss: 0.0000012583790294\n",
      "Epoch: 11210/20000, Loss: 0.0000012540106127\n",
      "Epoch: 11220/20000, Loss: 0.0000012496549289\n",
      "Epoch: 11230/20000, Loss: 0.0000012453652971\n",
      "Epoch: 11240/20000, Loss: 0.0000012423846556\n",
      "Epoch: 11250/20000, Loss: 0.0000013403778212\n",
      "Epoch: 11260/20000, Loss: 0.0000125863471112\n",
      "Epoch: 11270/20000, Loss: 0.0000058592345340\n",
      "Epoch: 11280/20000, Loss: 0.0000031984202451\n",
      "Epoch: 11290/20000, Loss: 0.0000018332980289\n",
      "Epoch: 11300/20000, Loss: 0.0000013314264606\n",
      "Epoch: 11310/20000, Loss: 0.0000012233383586\n",
      "Epoch: 11320/20000, Loss: 0.0000012385531818\n",
      "Epoch: 11330/20000, Loss: 0.0000012224508055\n",
      "Epoch: 11340/20000, Loss: 0.0000012081800378\n",
      "Epoch: 11350/20000, Loss: 0.0000012049410998\n",
      "Epoch: 11360/20000, Loss: 0.0000011993209910\n",
      "Epoch: 11370/20000, Loss: 0.0000011948743577\n",
      "Epoch: 11380/20000, Loss: 0.0000011907203543\n",
      "Epoch: 11390/20000, Loss: 0.0000011865299712\n",
      "Epoch: 11400/20000, Loss: 0.0000011823899513\n",
      "Epoch: 11410/20000, Loss: 0.0000011782930187\n",
      "Epoch: 11420/20000, Loss: 0.0000011742309880\n",
      "Epoch: 11430/20000, Loss: 0.0000011701876019\n",
      "Epoch: 11440/20000, Loss: 0.0000011661677490\n",
      "Epoch: 11450/20000, Loss: 0.0000011621643807\n",
      "Epoch: 11460/20000, Loss: 0.0000011581984154\n",
      "Epoch: 11470/20000, Loss: 0.0000011548180510\n",
      "Epoch: 11480/20000, Loss: 0.0000012014775166\n",
      "Epoch: 11490/20000, Loss: 0.0000088415290520\n",
      "Epoch: 11500/20000, Loss: 0.0000084026396507\n",
      "Epoch: 11510/20000, Loss: 0.0000033048379464\n",
      "Epoch: 11520/20000, Loss: 0.0000018830281761\n",
      "Epoch: 11530/20000, Loss: 0.0000013710234725\n",
      "Epoch: 11540/20000, Loss: 0.0000011822660326\n",
      "Epoch: 11550/20000, Loss: 0.0000011348572571\n",
      "Epoch: 11560/20000, Loss: 0.0000011353507716\n",
      "Epoch: 11570/20000, Loss: 0.0000011305691032\n",
      "Epoch: 11580/20000, Loss: 0.0000011210855746\n",
      "Epoch: 11590/20000, Loss: 0.0000011175418422\n",
      "Epoch: 11600/20000, Loss: 0.0000011129471886\n",
      "Epoch: 11610/20000, Loss: 0.0000011091244687\n",
      "Epoch: 11620/20000, Loss: 0.0000011051839692\n",
      "Epoch: 11630/20000, Loss: 0.0000011013481753\n",
      "Epoch: 11640/20000, Loss: 0.0000010975554687\n",
      "Epoch: 11650/20000, Loss: 0.0000010937944808\n",
      "Epoch: 11660/20000, Loss: 0.0000010900533880\n",
      "Epoch: 11670/20000, Loss: 0.0000010863399211\n",
      "Epoch: 11680/20000, Loss: 0.0000010826311154\n",
      "Epoch: 11690/20000, Loss: 0.0000010789510725\n",
      "Epoch: 11700/20000, Loss: 0.0000010752874005\n",
      "Epoch: 11710/20000, Loss: 0.0000010720825685\n",
      "Epoch: 11720/20000, Loss: 0.0000011600939160\n",
      "Epoch: 11730/20000, Loss: 0.0000031834417769\n",
      "Epoch: 11740/20000, Loss: 0.0000089577551989\n",
      "Epoch: 11750/20000, Loss: 0.0000014039127336\n",
      "Epoch: 11760/20000, Loss: 0.0000017570124555\n",
      "Epoch: 11770/20000, Loss: 0.0000011379803482\n",
      "Epoch: 11780/20000, Loss: 0.0000011279790897\n",
      "Epoch: 11790/20000, Loss: 0.0000010872663552\n",
      "Epoch: 11800/20000, Loss: 0.0000010516135944\n",
      "Epoch: 11810/20000, Loss: 0.0000010429333770\n",
      "Epoch: 11820/20000, Loss: 0.0000010388328064\n",
      "Epoch: 11830/20000, Loss: 0.0000010353088555\n",
      "Epoch: 11840/20000, Loss: 0.0000010316443877\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 11850/20000, Loss: 0.0000010277484535\n",
      "Epoch: 11860/20000, Loss: 0.0000010243918496\n",
      "Epoch: 11870/20000, Loss: 0.0000010212206689\n",
      "Epoch: 11880/20000, Loss: 0.0000010224478046\n",
      "Epoch: 11890/20000, Loss: 0.0000012263092231\n",
      "Epoch: 11900/20000, Loss: 0.0000109767388494\n",
      "Epoch: 11910/20000, Loss: 0.0000041868984226\n",
      "Epoch: 11920/20000, Loss: 0.0000017454918861\n",
      "Epoch: 11930/20000, Loss: 0.0000010646481314\n",
      "Epoch: 11940/20000, Loss: 0.0000011789935570\n",
      "Epoch: 11950/20000, Loss: 0.0000010024463108\n",
      "Epoch: 11960/20000, Loss: 0.0000010184320445\n",
      "Epoch: 11970/20000, Loss: 0.0000009994015500\n",
      "Epoch: 11980/20000, Loss: 0.0000009902578313\n",
      "Epoch: 11990/20000, Loss: 0.0000009867198969\n",
      "Epoch: 12000/20000, Loss: 0.0000009832810974\n",
      "Epoch: 12010/20000, Loss: 0.0000009798584415\n",
      "Epoch: 12020/20000, Loss: 0.0000009765626601\n",
      "Epoch: 12030/20000, Loss: 0.0000009732457329\n",
      "Epoch: 12040/20000, Loss: 0.0000009699358543\n",
      "Epoch: 12050/20000, Loss: 0.0000009666598544\n",
      "Epoch: 12060/20000, Loss: 0.0000009634223943\n",
      "Epoch: 12070/20000, Loss: 0.0000009606998219\n",
      "Epoch: 12080/20000, Loss: 0.0000009996509789\n",
      "Epoch: 12090/20000, Loss: 0.0000070378964665\n",
      "Epoch: 12100/20000, Loss: 0.0000083315453594\n",
      "Epoch: 12110/20000, Loss: 0.0000026375778361\n",
      "Epoch: 12120/20000, Loss: 0.0000014598871303\n",
      "Epoch: 12130/20000, Loss: 0.0000010796975403\n",
      "Epoch: 12140/20000, Loss: 0.0000009684627003\n",
      "Epoch: 12150/20000, Loss: 0.0000009523475910\n",
      "Epoch: 12160/20000, Loss: 0.0000009515205193\n",
      "Epoch: 12170/20000, Loss: 0.0000009415062436\n",
      "Epoch: 12180/20000, Loss: 0.0000009342436442\n",
      "Epoch: 12190/20000, Loss: 0.0000009311842177\n",
      "Epoch: 12200/20000, Loss: 0.0000009273013006\n",
      "Epoch: 12210/20000, Loss: 0.0000009241013004\n",
      "Epoch: 12220/20000, Loss: 0.0000009208588949\n",
      "Epoch: 12230/20000, Loss: 0.0000009176756635\n",
      "Epoch: 12240/20000, Loss: 0.0000009145460353\n",
      "Epoch: 12250/20000, Loss: 0.0000009114483532\n",
      "Epoch: 12260/20000, Loss: 0.0000009083623240\n",
      "Epoch: 12270/20000, Loss: 0.0000009052979522\n",
      "Epoch: 12280/20000, Loss: 0.0000009022388099\n",
      "Epoch: 12290/20000, Loss: 0.0000008992048492\n",
      "Epoch: 12300/20000, Loss: 0.0000008961794151\n",
      "Epoch: 12310/20000, Loss: 0.0000008931683624\n",
      "Epoch: 12320/20000, Loss: 0.0000008901844240\n",
      "Epoch: 12330/20000, Loss: 0.0000008887286640\n",
      "Epoch: 12340/20000, Loss: 0.0000011577874375\n",
      "Epoch: 12350/20000, Loss: 0.0000218008790398\n",
      "Epoch: 12360/20000, Loss: 0.0000060444785959\n",
      "Epoch: 12370/20000, Loss: 0.0000026912584872\n",
      "Epoch: 12380/20000, Loss: 0.0000011173020766\n",
      "Epoch: 12390/20000, Loss: 0.0000009052660062\n",
      "Epoch: 12400/20000, Loss: 0.0000009364135281\n",
      "Epoch: 12410/20000, Loss: 0.0000008988961326\n",
      "Epoch: 12420/20000, Loss: 0.0000008809969927\n",
      "Epoch: 12430/20000, Loss: 0.0000008723616247\n",
      "Epoch: 12440/20000, Loss: 0.0000008665618338\n",
      "Epoch: 12450/20000, Loss: 0.0000008627067700\n",
      "Epoch: 12460/20000, Loss: 0.0000008596261409\n",
      "Epoch: 12470/20000, Loss: 0.0000008565901339\n",
      "Epoch: 12480/20000, Loss: 0.0000008535560596\n",
      "Epoch: 12490/20000, Loss: 0.0000008506325457\n",
      "Epoch: 12500/20000, Loss: 0.0000008477362599\n",
      "Epoch: 12510/20000, Loss: 0.0000008448654967\n",
      "Epoch: 12520/20000, Loss: 0.0000008420192898\n",
      "Epoch: 12530/20000, Loss: 0.0000008391943993\n",
      "Epoch: 12540/20000, Loss: 0.0000008363869597\n",
      "Epoch: 12550/20000, Loss: 0.0000008335906045\n",
      "Epoch: 12560/20000, Loss: 0.0000008308121551\n",
      "Epoch: 12570/20000, Loss: 0.0000008280443353\n",
      "Epoch: 12580/20000, Loss: 0.0000008252897032\n",
      "Epoch: 12590/20000, Loss: 0.0000008225434840\n",
      "Epoch: 12600/20000, Loss: 0.0000008198072123\n",
      "Epoch: 12610/20000, Loss: 0.0000008170806609\n",
      "Epoch: 12620/20000, Loss: 0.0000008143701393\n",
      "Epoch: 12630/20000, Loss: 0.0000008121475616\n",
      "Epoch: 12640/20000, Loss: 0.0000008719919151\n",
      "Epoch: 12650/20000, Loss: 0.0000124732478071\n",
      "Epoch: 12660/20000, Loss: 0.0000050421303968\n",
      "Epoch: 12670/20000, Loss: 0.0000019177257400\n",
      "Epoch: 12680/20000, Loss: 0.0000009793075151\n",
      "Epoch: 12690/20000, Loss: 0.0000008304962194\n",
      "Epoch: 12700/20000, Loss: 0.0000008105320717\n",
      "Epoch: 12710/20000, Loss: 0.0000008045164464\n",
      "Epoch: 12720/20000, Loss: 0.0000008019350730\n",
      "Epoch: 12730/20000, Loss: 0.0000007980092391\n",
      "Epoch: 12740/20000, Loss: 0.0000007924756460\n",
      "Epoch: 12750/20000, Loss: 0.0000007880035469\n",
      "Epoch: 12760/20000, Loss: 0.0000007852338513\n",
      "Epoch: 12770/20000, Loss: 0.0000007824688169\n",
      "Epoch: 12780/20000, Loss: 0.0000007797329431\n",
      "Epoch: 12790/20000, Loss: 0.0000007770815955\n",
      "Epoch: 12800/20000, Loss: 0.0000007744636150\n",
      "Epoch: 12810/20000, Loss: 0.0000007718649044\n",
      "Epoch: 12820/20000, Loss: 0.0000007692860891\n",
      "Epoch: 12830/20000, Loss: 0.0000007667212572\n",
      "Epoch: 12840/20000, Loss: 0.0000007641706361\n",
      "Epoch: 12850/20000, Loss: 0.0000007616346238\n",
      "Epoch: 12860/20000, Loss: 0.0000007591077065\n",
      "Epoch: 12870/20000, Loss: 0.0000007567055036\n",
      "Epoch: 12880/20000, Loss: 0.0000007652957379\n",
      "Epoch: 12890/20000, Loss: 0.0000026335255825\n",
      "Epoch: 12900/20000, Loss: 0.0000045516089813\n",
      "Epoch: 12910/20000, Loss: 0.0000017440714828\n",
      "Epoch: 12920/20000, Loss: 0.0000013383813666\n",
      "Epoch: 12930/20000, Loss: 0.0000008132526546\n",
      "Epoch: 12940/20000, Loss: 0.0000008263145901\n",
      "Epoch: 12950/20000, Loss: 0.0000007519753922\n",
      "Epoch: 12960/20000, Loss: 0.0000007396134833\n",
      "Epoch: 12970/20000, Loss: 0.0000007374020470\n",
      "Epoch: 12980/20000, Loss: 0.0000007344672781\n",
      "Epoch: 12990/20000, Loss: 0.0000007316991173\n",
      "Epoch: 13000/20000, Loss: 0.0000007293035651\n",
      "Epoch: 13010/20000, Loss: 0.0000007267042861\n",
      "Epoch: 13020/20000, Loss: 0.0000007243367577\n",
      "Epoch: 13030/20000, Loss: 0.0000007220095881\n",
      "Epoch: 13040/20000, Loss: 0.0000007212963737\n",
      "Epoch: 13050/20000, Loss: 0.0000007866145779\n",
      "Epoch: 13060/20000, Loss: 0.0000056903249970\n",
      "Epoch: 13070/20000, Loss: 0.0000041577027332\n",
      "Epoch: 13080/20000, Loss: 0.0000008526432111\n",
      "Epoch: 13090/20000, Loss: 0.0000012936953908\n",
      "Epoch: 13100/20000, Loss: 0.0000008354244301\n",
      "Epoch: 13110/20000, Loss: 0.0000007331469192\n",
      "Epoch: 13120/20000, Loss: 0.0000007312872299\n",
      "Epoch: 13130/20000, Loss: 0.0000007107173587\n",
      "Epoch: 13140/20000, Loss: 0.0000007021450301\n",
      "Epoch: 13150/20000, Loss: 0.0000007005455132\n",
      "Epoch: 13160/20000, Loss: 0.0000006975800488\n",
      "Epoch: 13170/20000, Loss: 0.0000006948155260\n",
      "Epoch: 13180/20000, Loss: 0.0000006922974194\n",
      "Epoch: 13190/20000, Loss: 0.0000006898902143\n",
      "Epoch: 13200/20000, Loss: 0.0000006875800977\n",
      "Epoch: 13210/20000, Loss: 0.0000006852884553\n",
      "Epoch: 13220/20000, Loss: 0.0000006830293273\n",
      "Epoch: 13230/20000, Loss: 0.0000006809018487\n",
      "Epoch: 13240/20000, Loss: 0.0000006825038668\n",
      "Epoch: 13250/20000, Loss: 0.0000009404859611\n",
      "Epoch: 13260/20000, Loss: 0.0000139278536153\n",
      "Epoch: 13270/20000, Loss: 0.0000012083593219\n",
      "Epoch: 13280/20000, Loss: 0.0000018243578097\n",
      "Epoch: 13290/20000, Loss: 0.0000011767103842\n",
      "Epoch: 13300/20000, Loss: 0.0000007172778282\n",
      "Epoch: 13310/20000, Loss: 0.0000006920440114\n",
      "Epoch: 13320/20000, Loss: 0.0000006907087027\n",
      "Epoch: 13330/20000, Loss: 0.0000006661401812\n",
      "Epoch: 13340/20000, Loss: 0.0000006652564934\n",
      "Epoch: 13350/20000, Loss: 0.0000006613334449\n",
      "Epoch: 13360/20000, Loss: 0.0000006580568765\n",
      "Epoch: 13370/20000, Loss: 0.0000006557458505\n",
      "Epoch: 13380/20000, Loss: 0.0000006535082093\n",
      "Epoch: 13390/20000, Loss: 0.0000006512906339\n",
      "Epoch: 13400/20000, Loss: 0.0000006491023896\n",
      "Epoch: 13410/20000, Loss: 0.0000006469391565\n",
      "Epoch: 13420/20000, Loss: 0.0000006447784813\n",
      "Epoch: 13430/20000, Loss: 0.0000006426612913\n",
      "Epoch: 13440/20000, Loss: 0.0000006417883469\n",
      "Epoch: 13450/20000, Loss: 0.0000007993524491\n",
      "Epoch: 13460/20000, Loss: 0.0000016570176058\n",
      "Epoch: 13470/20000, Loss: 0.0000061715572883\n",
      "Epoch: 13480/20000, Loss: 0.0000021903053948\n",
      "Epoch: 13490/20000, Loss: 0.0000016286486471\n",
      "Epoch: 13500/20000, Loss: 0.0000008088595678\n",
      "Epoch: 13510/20000, Loss: 0.0000006494562399\n",
      "Epoch: 13520/20000, Loss: 0.0000006363416674\n",
      "Epoch: 13530/20000, Loss: 0.0000006280687899\n",
      "Epoch: 13540/20000, Loss: 0.0000006246320368\n",
      "Epoch: 13550/20000, Loss: 0.0000006244940778\n",
      "Epoch: 13560/20000, Loss: 0.0000006198869755\n",
      "Epoch: 13570/20000, Loss: 0.0000006188399766\n",
      "Epoch: 13580/20000, Loss: 0.0000006192230444\n",
      "Epoch: 13590/20000, Loss: 0.0000006635951308\n",
      "Epoch: 13600/20000, Loss: 0.0000024322880563\n",
      "Epoch: 13610/20000, Loss: 0.0000013931065723\n",
      "Epoch: 13620/20000, Loss: 0.0000013680922848\n",
      "Epoch: 13630/20000, Loss: 0.0000010657203120\n",
      "Epoch: 13640/20000, Loss: 0.0000006159280019\n",
      "Epoch: 13650/20000, Loss: 0.0000006734824183\n",
      "Epoch: 13660/20000, Loss: 0.0000006344718599\n",
      "Epoch: 13670/20000, Loss: 0.0000006107711670\n",
      "Epoch: 13680/20000, Loss: 0.0000006033688464\n",
      "Epoch: 13690/20000, Loss: 0.0000005997075050\n",
      "Epoch: 13700/20000, Loss: 0.0000005962592695\n",
      "Epoch: 13710/20000, Loss: 0.0000005939106131\n",
      "Epoch: 13720/20000, Loss: 0.0000005919312684\n",
      "Epoch: 13730/20000, Loss: 0.0000005903135616\n",
      "Epoch: 13740/20000, Loss: 0.0000005926115705\n",
      "Epoch: 13750/20000, Loss: 0.0000007540785987\n",
      "Epoch: 13760/20000, Loss: 0.0000088946426331\n",
      "Epoch: 13770/20000, Loss: 0.0000046424588618\n",
      "Epoch: 13780/20000, Loss: 0.0000008064604913\n",
      "Epoch: 13790/20000, Loss: 0.0000008577930544\n",
      "Epoch: 13800/20000, Loss: 0.0000006993829516\n",
      "Epoch: 13810/20000, Loss: 0.0000006091013347\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 13820/20000, Loss: 0.0000005856817324\n",
      "Epoch: 13830/20000, Loss: 0.0000005856938969\n",
      "Epoch: 13840/20000, Loss: 0.0000005765475066\n",
      "Epoch: 13850/20000, Loss: 0.0000005726875543\n",
      "Epoch: 13860/20000, Loss: 0.0000005705002195\n",
      "Epoch: 13870/20000, Loss: 0.0000005685839142\n",
      "Epoch: 13880/20000, Loss: 0.0000005666742595\n",
      "Epoch: 13890/20000, Loss: 0.0000005647232797\n",
      "Epoch: 13900/20000, Loss: 0.0000005629037219\n",
      "Epoch: 13910/20000, Loss: 0.0000005610900757\n",
      "Epoch: 13920/20000, Loss: 0.0000005595182984\n",
      "Epoch: 13930/20000, Loss: 0.0000005667285450\n",
      "Epoch: 13940/20000, Loss: 0.0000014473832834\n",
      "Epoch: 13950/20000, Loss: 0.0000070090823101\n",
      "Epoch: 13960/20000, Loss: 0.0000026878324206\n",
      "Epoch: 13970/20000, Loss: 0.0000013112893384\n",
      "Epoch: 13980/20000, Loss: 0.0000006176165357\n",
      "Epoch: 13990/20000, Loss: 0.0000005660150464\n",
      "Epoch: 14000/20000, Loss: 0.0000005717624276\n",
      "Epoch: 14010/20000, Loss: 0.0000005561794296\n",
      "Epoch: 14020/20000, Loss: 0.0000005471868576\n",
      "Epoch: 14030/20000, Loss: 0.0000005460356078\n",
      "Epoch: 14040/20000, Loss: 0.0000005421945275\n",
      "Epoch: 14050/20000, Loss: 0.0000005413437520\n",
      "Epoch: 14060/20000, Loss: 0.0000005435213097\n",
      "Epoch: 14070/20000, Loss: 0.0000006269840469\n",
      "Epoch: 14080/20000, Loss: 0.0000041426865209\n",
      "Epoch: 14090/20000, Loss: 0.0000011001574194\n",
      "Epoch: 14100/20000, Loss: 0.0000019201024770\n",
      "Epoch: 14110/20000, Loss: 0.0000005432720513\n",
      "Epoch: 14120/20000, Loss: 0.0000006825757737\n",
      "Epoch: 14130/20000, Loss: 0.0000005849909144\n",
      "Epoch: 14140/20000, Loss: 0.0000005335583069\n",
      "Epoch: 14150/20000, Loss: 0.0000005277170203\n",
      "Epoch: 14160/20000, Loss: 0.0000005258794431\n",
      "Epoch: 14170/20000, Loss: 0.0000005244184536\n",
      "Epoch: 14180/20000, Loss: 0.0000005230465376\n",
      "Epoch: 14190/20000, Loss: 0.0000005208054290\n",
      "Epoch: 14200/20000, Loss: 0.0000005193246579\n",
      "Epoch: 14210/20000, Loss: 0.0000005178753213\n",
      "Epoch: 14220/20000, Loss: 0.0000005199822795\n",
      "Epoch: 14230/20000, Loss: 0.0000006595238347\n",
      "Epoch: 14240/20000, Loss: 0.0000082784335973\n",
      "Epoch: 14250/20000, Loss: 0.0000044388852984\n",
      "Epoch: 14260/20000, Loss: 0.0000005737024367\n",
      "Epoch: 14270/20000, Loss: 0.0000009220537436\n",
      "Epoch: 14280/20000, Loss: 0.0000005659701969\n",
      "Epoch: 14290/20000, Loss: 0.0000005654311508\n",
      "Epoch: 14300/20000, Loss: 0.0000005089970045\n",
      "Epoch: 14310/20000, Loss: 0.0000005132145589\n",
      "Epoch: 14320/20000, Loss: 0.0000005084466466\n",
      "Epoch: 14330/20000, Loss: 0.0000005043877991\n",
      "Epoch: 14340/20000, Loss: 0.0000005020120852\n",
      "Epoch: 14350/20000, Loss: 0.0000005001161867\n",
      "Epoch: 14360/20000, Loss: 0.0000004983329518\n",
      "Epoch: 14370/20000, Loss: 0.0000004967649829\n",
      "Epoch: 14380/20000, Loss: 0.0000004951830306\n",
      "Epoch: 14390/20000, Loss: 0.0000004936600249\n",
      "Epoch: 14400/20000, Loss: 0.0000004923793426\n",
      "Epoch: 14410/20000, Loss: 0.0000005009930533\n",
      "Epoch: 14420/20000, Loss: 0.0000014442191514\n",
      "Epoch: 14430/20000, Loss: 0.0000052730856623\n",
      "Epoch: 14440/20000, Loss: 0.0000035001069136\n",
      "Epoch: 14450/20000, Loss: 0.0000010226788163\n",
      "Epoch: 14460/20000, Loss: 0.0000005043478950\n",
      "Epoch: 14470/20000, Loss: 0.0000005428495342\n",
      "Epoch: 14480/20000, Loss: 0.0000005398396183\n",
      "Epoch: 14490/20000, Loss: 0.0000004869710892\n",
      "Epoch: 14500/20000, Loss: 0.0000004897007102\n",
      "Epoch: 14510/20000, Loss: 0.0000004819706874\n",
      "Epoch: 14520/20000, Loss: 0.0000004811039389\n",
      "Epoch: 14530/20000, Loss: 0.0000004787648322\n",
      "Epoch: 14540/20000, Loss: 0.0000004770030841\n",
      "Epoch: 14550/20000, Loss: 0.0000004754676581\n",
      "Epoch: 14560/20000, Loss: 0.0000004739618760\n",
      "Epoch: 14570/20000, Loss: 0.0000004724779501\n",
      "Epoch: 14580/20000, Loss: 0.0000004710119583\n",
      "Epoch: 14590/20000, Loss: 0.0000004695537541\n",
      "Epoch: 14600/20000, Loss: 0.0000004681262169\n",
      "Epoch: 14610/20000, Loss: 0.0000004683101622\n",
      "Epoch: 14620/20000, Loss: 0.0000007558680863\n",
      "Epoch: 14630/20000, Loss: 0.0000054079987422\n",
      "Epoch: 14640/20000, Loss: 0.0000022250521852\n",
      "Epoch: 14650/20000, Loss: 0.0000011030928135\n",
      "Epoch: 14660/20000, Loss: 0.0000005492714195\n",
      "Epoch: 14670/20000, Loss: 0.0000004915522709\n",
      "Epoch: 14680/20000, Loss: 0.0000004781911116\n",
      "Epoch: 14690/20000, Loss: 0.0000004651140841\n",
      "Epoch: 14700/20000, Loss: 0.0000004602739523\n",
      "Epoch: 14710/20000, Loss: 0.0000004592751282\n",
      "Epoch: 14720/20000, Loss: 0.0000004549605137\n",
      "Epoch: 14730/20000, Loss: 0.0000004543409204\n",
      "Epoch: 14740/20000, Loss: 0.0000004558991691\n",
      "Epoch: 14750/20000, Loss: 0.0000005113367934\n",
      "Epoch: 14760/20000, Loss: 0.0000027900312034\n",
      "Epoch: 14770/20000, Loss: 0.0000005100146723\n",
      "Epoch: 14780/20000, Loss: 0.0000016130388758\n",
      "Epoch: 14790/20000, Loss: 0.0000006913913353\n",
      "Epoch: 14800/20000, Loss: 0.0000004871492365\n",
      "Epoch: 14810/20000, Loss: 0.0000005196463349\n",
      "Epoch: 14820/20000, Loss: 0.0000004686992838\n",
      "Epoch: 14830/20000, Loss: 0.0000004497560440\n",
      "Epoch: 14840/20000, Loss: 0.0000004449668154\n",
      "Epoch: 14850/20000, Loss: 0.0000004427193687\n",
      "Epoch: 14860/20000, Loss: 0.0000004402723448\n",
      "Epoch: 14870/20000, Loss: 0.0000004384981480\n",
      "Epoch: 14880/20000, Loss: 0.0000004372068645\n",
      "Epoch: 14890/20000, Loss: 0.0000004362582331\n",
      "Epoch: 14900/20000, Loss: 0.0000004397174393\n",
      "Epoch: 14910/20000, Loss: 0.0000006278310138\n",
      "Epoch: 14920/20000, Loss: 0.0000095627692644\n",
      "Epoch: 14930/20000, Loss: 0.0000037322442950\n",
      "Epoch: 14940/20000, Loss: 0.0000007960247785\n",
      "Epoch: 14950/20000, Loss: 0.0000006367360470\n",
      "Epoch: 14960/20000, Loss: 0.0000005500159546\n",
      "Epoch: 14970/20000, Loss: 0.0000004545328807\n",
      "Epoch: 14980/20000, Loss: 0.0000004359701791\n",
      "Epoch: 14990/20000, Loss: 0.0000004365504935\n",
      "Epoch: 15000/20000, Loss: 0.0000004290694733\n",
      "Epoch: 15010/20000, Loss: 0.0000004258220088\n",
      "Epoch: 15020/20000, Loss: 0.0000004241748286\n",
      "Epoch: 15030/20000, Loss: 0.0000004228479895\n",
      "Epoch: 15040/20000, Loss: 0.0000004215096681\n",
      "Epoch: 15050/20000, Loss: 0.0000004202008199\n",
      "Epoch: 15060/20000, Loss: 0.0000004190131335\n",
      "Epoch: 15070/20000, Loss: 0.0000004181430597\n",
      "Epoch: 15080/20000, Loss: 0.0000004333372488\n",
      "Epoch: 15090/20000, Loss: 0.0000017597940314\n",
      "Epoch: 15100/20000, Loss: 0.0000083058394011\n",
      "Epoch: 15110/20000, Loss: 0.0000025387289497\n",
      "Epoch: 15120/20000, Loss: 0.0000004904402431\n",
      "Epoch: 15130/20000, Loss: 0.0000005720555123\n",
      "Epoch: 15140/20000, Loss: 0.0000005098749511\n",
      "Epoch: 15150/20000, Loss: 0.0000004353221073\n",
      "Epoch: 15160/20000, Loss: 0.0000004170875343\n",
      "Epoch: 15170/20000, Loss: 0.0000004136095413\n",
      "Epoch: 15180/20000, Loss: 0.0000004111976466\n",
      "Epoch: 15190/20000, Loss: 0.0000004076723599\n",
      "Epoch: 15200/20000, Loss: 0.0000004063724930\n",
      "Epoch: 15210/20000, Loss: 0.0000004048953883\n",
      "Epoch: 15220/20000, Loss: 0.0000004037092651\n",
      "Epoch: 15230/20000, Loss: 0.0000004026042859\n",
      "Epoch: 15240/20000, Loss: 0.0000004026455542\n",
      "Epoch: 15250/20000, Loss: 0.0000005422840559\n",
      "Epoch: 15260/20000, Loss: 0.0000167061389220\n",
      "Epoch: 15270/20000, Loss: 0.0000006311780112\n",
      "Epoch: 15280/20000, Loss: 0.0000005950003015\n",
      "Epoch: 15290/20000, Loss: 0.0000004761601815\n",
      "Epoch: 15300/20000, Loss: 0.0000004361984622\n",
      "Epoch: 15310/20000, Loss: 0.0000004295856684\n",
      "Epoch: 15320/20000, Loss: 0.0000004249050960\n",
      "Epoch: 15330/20000, Loss: 0.0000004091602648\n",
      "Epoch: 15340/20000, Loss: 0.0000003978026086\n",
      "Epoch: 15350/20000, Loss: 0.0000003966033262\n",
      "Epoch: 15360/20000, Loss: 0.0000003949584197\n",
      "Epoch: 15370/20000, Loss: 0.0000003934139841\n",
      "Epoch: 15380/20000, Loss: 0.0000003921940674\n",
      "Epoch: 15390/20000, Loss: 0.0000003910376449\n",
      "Epoch: 15400/20000, Loss: 0.0000003898807108\n",
      "Epoch: 15410/20000, Loss: 0.0000003887662388\n",
      "Epoch: 15420/20000, Loss: 0.0000003876666597\n",
      "Epoch: 15430/20000, Loss: 0.0000003865851284\n",
      "Epoch: 15440/20000, Loss: 0.0000003855158752\n",
      "Epoch: 15450/20000, Loss: 0.0000003844546370\n",
      "Epoch: 15460/20000, Loss: 0.0000003834038864\n",
      "Epoch: 15470/20000, Loss: 0.0000003823620318\n",
      "Epoch: 15480/20000, Loss: 0.0000003813364060\n",
      "Epoch: 15490/20000, Loss: 0.0000003812814668\n",
      "Epoch: 15500/20000, Loss: 0.0000005692399441\n",
      "Epoch: 15510/20000, Loss: 0.0000091227566372\n",
      "Epoch: 15520/20000, Loss: 0.0000042276274144\n",
      "Epoch: 15530/20000, Loss: 0.0000008755374665\n",
      "Epoch: 15540/20000, Loss: 0.0000006470069707\n",
      "Epoch: 15550/20000, Loss: 0.0000005376722925\n",
      "Epoch: 15560/20000, Loss: 0.0000003922465623\n",
      "Epoch: 15570/20000, Loss: 0.0000004060148626\n",
      "Epoch: 15580/20000, Loss: 0.0000003778383189\n",
      "Epoch: 15590/20000, Loss: 0.0000003763533414\n",
      "Epoch: 15600/20000, Loss: 0.0000003750341477\n",
      "Epoch: 15610/20000, Loss: 0.0000003733051983\n",
      "Epoch: 15620/20000, Loss: 0.0000003719731581\n",
      "Epoch: 15630/20000, Loss: 0.0000003708416898\n",
      "Epoch: 15640/20000, Loss: 0.0000003697777800\n",
      "Epoch: 15650/20000, Loss: 0.0000003687731578\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 15660/20000, Loss: 0.0000003677970142\n",
      "Epoch: 15670/20000, Loss: 0.0000003668392026\n",
      "Epoch: 15680/20000, Loss: 0.0000003659488641\n",
      "Epoch: 15690/20000, Loss: 0.0000003671242723\n",
      "Epoch: 15700/20000, Loss: 0.0000005160629257\n",
      "Epoch: 15710/20000, Loss: 0.0000122144992929\n",
      "Epoch: 15720/20000, Loss: 0.0000025573549465\n",
      "Epoch: 15730/20000, Loss: 0.0000018528410237\n",
      "Epoch: 15740/20000, Loss: 0.0000007605382848\n",
      "Epoch: 15750/20000, Loss: 0.0000003776280266\n",
      "Epoch: 15760/20000, Loss: 0.0000004011396584\n",
      "Epoch: 15770/20000, Loss: 0.0000003852011332\n",
      "Epoch: 15780/20000, Loss: 0.0000003632459311\n",
      "Epoch: 15790/20000, Loss: 0.0000003636012877\n",
      "Epoch: 15800/20000, Loss: 0.0000003605449876\n",
      "Epoch: 15810/20000, Loss: 0.0000003586411026\n",
      "Epoch: 15820/20000, Loss: 0.0000003576673464\n",
      "Epoch: 15830/20000, Loss: 0.0000003566538851\n",
      "Epoch: 15840/20000, Loss: 0.0000003556539525\n",
      "Epoch: 15850/20000, Loss: 0.0000003546817027\n",
      "Epoch: 15860/20000, Loss: 0.0000003537399209\n",
      "Epoch: 15870/20000, Loss: 0.0000003528053014\n",
      "Epoch: 15880/20000, Loss: 0.0000003518838412\n",
      "Epoch: 15890/20000, Loss: 0.0000003509693158\n",
      "Epoch: 15900/20000, Loss: 0.0000003500702803\n",
      "Epoch: 15910/20000, Loss: 0.0000003492766325\n",
      "Epoch: 15920/20000, Loss: 0.0000003578158498\n",
      "Epoch: 15930/20000, Loss: 0.0000020115251118\n",
      "Epoch: 15940/20000, Loss: 0.0000005037159667\n",
      "Epoch: 15950/20000, Loss: 0.0000006070699783\n",
      "Epoch: 15960/20000, Loss: 0.0000003931352808\n",
      "Epoch: 15970/20000, Loss: 0.0000003634334007\n",
      "Epoch: 15980/20000, Loss: 0.0000003596933027\n",
      "Epoch: 15990/20000, Loss: 0.0000003624411988\n",
      "Epoch: 16000/20000, Loss: 0.0000003625632985\n",
      "Epoch: 16010/20000, Loss: 0.0000003545155209\n",
      "Epoch: 16020/20000, Loss: 0.0000003468375667\n",
      "Epoch: 16030/20000, Loss: 0.0000003453887132\n",
      "Epoch: 16040/20000, Loss: 0.0000003442516174\n",
      "Epoch: 16050/20000, Loss: 0.0000003429748290\n",
      "Epoch: 16060/20000, Loss: 0.0000003419879704\n",
      "Epoch: 16070/20000, Loss: 0.0000003410226270\n",
      "Epoch: 16080/20000, Loss: 0.0000003400728303\n",
      "Epoch: 16090/20000, Loss: 0.0000003391534733\n",
      "Epoch: 16100/20000, Loss: 0.0000003382710929\n",
      "Epoch: 16110/20000, Loss: 0.0000003387061440\n",
      "Epoch: 16120/20000, Loss: 0.0000005008647008\n",
      "Epoch: 16130/20000, Loss: 0.0000013964486243\n",
      "Epoch: 16140/20000, Loss: 0.0000008911384839\n",
      "Epoch: 16150/20000, Loss: 0.0000003636833412\n",
      "Epoch: 16160/20000, Loss: 0.0000003583919863\n",
      "Epoch: 16170/20000, Loss: 0.0000003727151636\n",
      "Epoch: 16180/20000, Loss: 0.0000003790266021\n",
      "Epoch: 16190/20000, Loss: 0.0000010454474477\n",
      "Epoch: 16200/20000, Loss: 0.0000047602366067\n",
      "Epoch: 16210/20000, Loss: 0.0000015060190890\n",
      "Epoch: 16220/20000, Loss: 0.0000004603212744\n",
      "Epoch: 16230/20000, Loss: 0.0000003338571730\n",
      "Epoch: 16240/20000, Loss: 0.0000003300955598\n",
      "Epoch: 16250/20000, Loss: 0.0000003302839389\n",
      "Epoch: 16260/20000, Loss: 0.0000003354736293\n",
      "Epoch: 16270/20000, Loss: 0.0000003319251221\n",
      "Epoch: 16280/20000, Loss: 0.0000003274002438\n",
      "Epoch: 16290/20000, Loss: 0.0000003252414160\n",
      "Epoch: 16300/20000, Loss: 0.0000003246543940\n",
      "Epoch: 16310/20000, Loss: 0.0000003295602369\n",
      "Epoch: 16320/20000, Loss: 0.0000006871705978\n",
      "Epoch: 16330/20000, Loss: 0.0000112018060463\n",
      "Epoch: 16340/20000, Loss: 0.0000004525983570\n",
      "Epoch: 16350/20000, Loss: 0.0000011205480632\n",
      "Epoch: 16360/20000, Loss: 0.0000006856247410\n",
      "Epoch: 16370/20000, Loss: 0.0000003293499731\n",
      "Epoch: 16380/20000, Loss: 0.0000003731846050\n",
      "Epoch: 16390/20000, Loss: 0.0000003247752716\n",
      "Epoch: 16400/20000, Loss: 0.0000003287432264\n",
      "Epoch: 16410/20000, Loss: 0.0000003207929637\n",
      "Epoch: 16420/20000, Loss: 0.0000003193236751\n",
      "Epoch: 16430/20000, Loss: 0.0000003185441528\n",
      "Epoch: 16440/20000, Loss: 0.0000003175817085\n",
      "Epoch: 16450/20000, Loss: 0.0000003166744307\n",
      "Epoch: 16460/20000, Loss: 0.0000003158393156\n",
      "Epoch: 16470/20000, Loss: 0.0000003152156296\n",
      "Epoch: 16480/20000, Loss: 0.0000003290488166\n",
      "Epoch: 16490/20000, Loss: 0.0000021127852960\n",
      "Epoch: 16500/20000, Loss: 0.0000024282123832\n",
      "Epoch: 16510/20000, Loss: 0.0000005799716973\n",
      "Epoch: 16520/20000, Loss: 0.0000004744708235\n",
      "Epoch: 16530/20000, Loss: 0.0000004135437734\n",
      "Epoch: 16540/20000, Loss: 0.0000004169805266\n",
      "Epoch: 16550/20000, Loss: 0.0000008673248431\n",
      "Epoch: 16560/20000, Loss: 0.0000037879128740\n",
      "Epoch: 16570/20000, Loss: 0.0000010599967482\n",
      "Epoch: 16580/20000, Loss: 0.0000005243725809\n",
      "Epoch: 16590/20000, Loss: 0.0000003310890122\n",
      "Epoch: 16600/20000, Loss: 0.0000003222717737\n",
      "Epoch: 16610/20000, Loss: 0.0000003431358095\n",
      "Epoch: 16620/20000, Loss: 0.0000003131325741\n",
      "Epoch: 16630/20000, Loss: 0.0000003061740586\n",
      "Epoch: 16640/20000, Loss: 0.0000003053821445\n",
      "Epoch: 16650/20000, Loss: 0.0000003115752065\n",
      "Epoch: 16660/20000, Loss: 0.0000008684041291\n",
      "Epoch: 16670/20000, Loss: 0.0000095078821687\n",
      "Epoch: 16680/20000, Loss: 0.0000014643836721\n",
      "Epoch: 16690/20000, Loss: 0.0000003626282137\n",
      "Epoch: 16700/20000, Loss: 0.0000005210941367\n",
      "Epoch: 16710/20000, Loss: 0.0000004431171590\n",
      "Epoch: 16720/20000, Loss: 0.0000003076271469\n",
      "Epoch: 16730/20000, Loss: 0.0000003204754364\n",
      "Epoch: 16740/20000, Loss: 0.0000003036211638\n",
      "Epoch: 16750/20000, Loss: 0.0000003044610253\n",
      "Epoch: 16760/20000, Loss: 0.0000003012907541\n",
      "Epoch: 16770/20000, Loss: 0.0000003001351843\n",
      "Epoch: 16780/20000, Loss: 0.0000002993550083\n",
      "Epoch: 16790/20000, Loss: 0.0000002985508729\n",
      "Epoch: 16800/20000, Loss: 0.0000002977749887\n",
      "Epoch: 16810/20000, Loss: 0.0000002970278956\n",
      "Epoch: 16820/20000, Loss: 0.0000002962950134\n",
      "Epoch: 16830/20000, Loss: 0.0000002955692366\n",
      "Epoch: 16840/20000, Loss: 0.0000002949423958\n",
      "Epoch: 16850/20000, Loss: 0.0000003007271516\n",
      "Epoch: 16860/20000, Loss: 0.0000011892153680\n",
      "Epoch: 16870/20000, Loss: 0.0000058869609347\n",
      "Epoch: 16880/20000, Loss: 0.0000017012242779\n",
      "Epoch: 16890/20000, Loss: 0.0000009846311286\n",
      "Epoch: 16900/20000, Loss: 0.0000004435898120\n",
      "Epoch: 16910/20000, Loss: 0.0000003222862119\n",
      "Epoch: 16920/20000, Loss: 0.0000003012824550\n",
      "Epoch: 16930/20000, Loss: 0.0000002965146280\n",
      "Epoch: 16940/20000, Loss: 0.0000002960744325\n",
      "Epoch: 16950/20000, Loss: 0.0000002913883463\n",
      "Epoch: 16960/20000, Loss: 0.0000002907193561\n",
      "Epoch: 16970/20000, Loss: 0.0000002891572137\n",
      "Epoch: 16980/20000, Loss: 0.0000002898383116\n",
      "Epoch: 16990/20000, Loss: 0.0000003332200151\n",
      "Epoch: 17000/20000, Loss: 0.0000028699967061\n",
      "Epoch: 17010/20000, Loss: 0.0000004271344380\n",
      "Epoch: 17020/20000, Loss: 0.0000019422775495\n",
      "Epoch: 17030/20000, Loss: 0.0000003629082812\n",
      "Epoch: 17040/20000, Loss: 0.0000004769438533\n",
      "Epoch: 17050/20000, Loss: 0.0000002925628735\n",
      "Epoch: 17060/20000, Loss: 0.0000003160645008\n",
      "Epoch: 17070/20000, Loss: 0.0000002932197276\n",
      "Epoch: 17080/20000, Loss: 0.0000002856394588\n",
      "Epoch: 17090/20000, Loss: 0.0000002842876086\n",
      "Epoch: 17100/20000, Loss: 0.0000002835373039\n",
      "Epoch: 17110/20000, Loss: 0.0000002828945469\n",
      "Epoch: 17120/20000, Loss: 0.0000002821652174\n",
      "Epoch: 17130/20000, Loss: 0.0000002813636684\n",
      "Epoch: 17140/20000, Loss: 0.0000002807139481\n",
      "Epoch: 17150/20000, Loss: 0.0000002801420464\n",
      "Epoch: 17160/20000, Loss: 0.0000002811049455\n",
      "Epoch: 17170/20000, Loss: 0.0000003539986722\n",
      "Epoch: 17180/20000, Loss: 0.0000058637897382\n",
      "Epoch: 17190/20000, Loss: 0.0000045322840379\n",
      "Epoch: 17200/20000, Loss: 0.0000003242085143\n",
      "Epoch: 17210/20000, Loss: 0.0000006050254342\n",
      "Epoch: 17220/20000, Loss: 0.0000004710032613\n",
      "Epoch: 17230/20000, Loss: 0.0000002821031728\n",
      "Epoch: 17240/20000, Loss: 0.0000003083299589\n",
      "Epoch: 17250/20000, Loss: 0.0000002790998792\n",
      "Epoch: 17260/20000, Loss: 0.0000002795849809\n",
      "Epoch: 17270/20000, Loss: 0.0000002781168860\n",
      "Epoch: 17280/20000, Loss: 0.0000002762715781\n",
      "Epoch: 17290/20000, Loss: 0.0000002752916544\n",
      "Epoch: 17300/20000, Loss: 0.0000002754179320\n",
      "Epoch: 17310/20000, Loss: 0.0000003148702774\n",
      "Epoch: 17320/20000, Loss: 0.0000021298621959\n",
      "Epoch: 17330/20000, Loss: 0.0000009925049653\n",
      "Epoch: 17340/20000, Loss: 0.0000002774738164\n",
      "Epoch: 17350/20000, Loss: 0.0000003655634373\n",
      "Epoch: 17360/20000, Loss: 0.0000002719334020\n",
      "Epoch: 17370/20000, Loss: 0.0000002868784179\n",
      "Epoch: 17380/20000, Loss: 0.0000004674525655\n",
      "Epoch: 17390/20000, Loss: 0.0000074678277997\n",
      "Epoch: 17400/20000, Loss: 0.0000033746789541\n",
      "Epoch: 17410/20000, Loss: 0.0000003004242615\n",
      "Epoch: 17420/20000, Loss: 0.0000006451560353\n",
      "Epoch: 17430/20000, Loss: 0.0000002873437666\n",
      "Epoch: 17440/20000, Loss: 0.0000003000393747\n",
      "Epoch: 17450/20000, Loss: 0.0000002860976736\n",
      "Epoch: 17460/20000, Loss: 0.0000002731490270\n",
      "Epoch: 17470/20000, Loss: 0.0000002692062253\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 17480/20000, Loss: 0.0000002675674580\n",
      "Epoch: 17490/20000, Loss: 0.0000002663281293\n",
      "Epoch: 17500/20000, Loss: 0.0000002653656281\n",
      "Epoch: 17510/20000, Loss: 0.0000002648233135\n",
      "Epoch: 17520/20000, Loss: 0.0000002641586150\n",
      "Epoch: 17530/20000, Loss: 0.0000002637735577\n",
      "Epoch: 17540/20000, Loss: 0.0000002691057830\n",
      "Epoch: 17550/20000, Loss: 0.0000006189881105\n",
      "Epoch: 17560/20000, Loss: 0.0000113156029329\n",
      "Epoch: 17570/20000, Loss: 0.0000006630016287\n",
      "Epoch: 17580/20000, Loss: 0.0000008075475080\n",
      "Epoch: 17590/20000, Loss: 0.0000006018171916\n",
      "Epoch: 17600/20000, Loss: 0.0000003845615879\n",
      "Epoch: 17610/20000, Loss: 0.0000002863806401\n",
      "Epoch: 17620/20000, Loss: 0.0000002643647292\n",
      "Epoch: 17630/20000, Loss: 0.0000002667019885\n",
      "Epoch: 17640/20000, Loss: 0.0000002625104401\n",
      "Epoch: 17650/20000, Loss: 0.0000002605244447\n",
      "Epoch: 17660/20000, Loss: 0.0000002597976447\n",
      "Epoch: 17670/20000, Loss: 0.0000002589753478\n",
      "Epoch: 17680/20000, Loss: 0.0000002582773959\n",
      "Epoch: 17690/20000, Loss: 0.0000002576691713\n",
      "Epoch: 17700/20000, Loss: 0.0000002571740936\n",
      "Epoch: 17710/20000, Loss: 0.0000002610971421\n",
      "Epoch: 17720/20000, Loss: 0.0000006406531838\n",
      "Epoch: 17730/20000, Loss: 0.0000096381872936\n",
      "Epoch: 17740/20000, Loss: 0.0000007770529464\n",
      "Epoch: 17750/20000, Loss: 0.0000006373758765\n",
      "Epoch: 17760/20000, Loss: 0.0000004166755900\n",
      "Epoch: 17770/20000, Loss: 0.0000003571085472\n",
      "Epoch: 17780/20000, Loss: 0.0000002917605002\n",
      "Epoch: 17790/20000, Loss: 0.0000002608902037\n",
      "Epoch: 17800/20000, Loss: 0.0000002577916405\n",
      "Epoch: 17810/20000, Loss: 0.0000002551230409\n",
      "Epoch: 17820/20000, Loss: 0.0000002536691568\n",
      "Epoch: 17830/20000, Loss: 0.0000002528613265\n",
      "Epoch: 17840/20000, Loss: 0.0000002521677231\n",
      "Epoch: 17850/20000, Loss: 0.0000002515042183\n",
      "Epoch: 17860/20000, Loss: 0.0000002509201806\n",
      "Epoch: 17870/20000, Loss: 0.0000002503416567\n",
      "Epoch: 17880/20000, Loss: 0.0000002497767753\n",
      "Epoch: 17890/20000, Loss: 0.0000002492496662\n",
      "Epoch: 17900/20000, Loss: 0.0000002498716185\n",
      "Epoch: 17910/20000, Loss: 0.0000003462178597\n",
      "Epoch: 17920/20000, Loss: 0.0000102732356027\n",
      "Epoch: 17930/20000, Loss: 0.0000035872367334\n",
      "Epoch: 17940/20000, Loss: 0.0000017627506850\n",
      "Epoch: 17950/20000, Loss: 0.0000007499277217\n",
      "Epoch: 17960/20000, Loss: 0.0000004380390237\n",
      "Epoch: 17970/20000, Loss: 0.0000003095619547\n",
      "Epoch: 17980/20000, Loss: 0.0000002556852223\n",
      "Epoch: 17990/20000, Loss: 0.0000002506156704\n",
      "Epoch: 18000/20000, Loss: 0.0000002511102366\n",
      "Epoch: 18010/20000, Loss: 0.0000002482412924\n",
      "Epoch: 18020/20000, Loss: 0.0000002468956097\n",
      "Epoch: 18030/20000, Loss: 0.0000002462979580\n",
      "Epoch: 18040/20000, Loss: 0.0000002455236938\n",
      "Epoch: 18050/20000, Loss: 0.0000002448996099\n",
      "Epoch: 18060/20000, Loss: 0.0000002442997982\n",
      "Epoch: 18070/20000, Loss: 0.0000002437101898\n",
      "Epoch: 18080/20000, Loss: 0.0000002431343660\n",
      "Epoch: 18090/20000, Loss: 0.0000002425728098\n",
      "Epoch: 18100/20000, Loss: 0.0000002420195528\n",
      "Epoch: 18110/20000, Loss: 0.0000002414742255\n",
      "Epoch: 18120/20000, Loss: 0.0000002409525166\n",
      "Epoch: 18130/20000, Loss: 0.0000002428058110\n",
      "Epoch: 18140/20000, Loss: 0.0000009083918826\n",
      "Epoch: 18150/20000, Loss: 0.0000031924587347\n",
      "Epoch: 18160/20000, Loss: 0.0000012930644289\n",
      "Epoch: 18170/20000, Loss: 0.0000007411633192\n",
      "Epoch: 18180/20000, Loss: 0.0000007166964906\n",
      "Epoch: 18190/20000, Loss: 0.0000002601866811\n",
      "Epoch: 18200/20000, Loss: 0.0000002746981522\n",
      "Epoch: 18210/20000, Loss: 0.0000002617381938\n",
      "Epoch: 18220/20000, Loss: 0.0000002424767445\n",
      "Epoch: 18230/20000, Loss: 0.0000002401905874\n",
      "Epoch: 18240/20000, Loss: 0.0000002396700154\n",
      "Epoch: 18250/20000, Loss: 0.0000002388530334\n",
      "Epoch: 18260/20000, Loss: 0.0000002380528485\n",
      "Epoch: 18270/20000, Loss: 0.0000002373876100\n",
      "Epoch: 18280/20000, Loss: 0.0000002367898020\n",
      "Epoch: 18290/20000, Loss: 0.0000002362270237\n",
      "Epoch: 18300/20000, Loss: 0.0000002356812132\n",
      "Epoch: 18310/20000, Loss: 0.0000002351502530\n",
      "Epoch: 18320/20000, Loss: 0.0000002346277626\n",
      "Epoch: 18330/20000, Loss: 0.0000002341168823\n",
      "Epoch: 18340/20000, Loss: 0.0000002336082900\n",
      "Epoch: 18350/20000, Loss: 0.0000002331072864\n",
      "Epoch: 18360/20000, Loss: 0.0000002326145960\n",
      "Epoch: 18370/20000, Loss: 0.0000002324345871\n",
      "Epoch: 18380/20000, Loss: 0.0000002835483883\n",
      "Epoch: 18390/20000, Loss: 0.0000114312879305\n",
      "Epoch: 18400/20000, Loss: 0.0000025969361559\n",
      "Epoch: 18410/20000, Loss: 0.0000007884903539\n",
      "Epoch: 18420/20000, Loss: 0.0000003721521011\n",
      "Epoch: 18430/20000, Loss: 0.0000003021075088\n",
      "Epoch: 18440/20000, Loss: 0.0000002624070987\n",
      "Epoch: 18450/20000, Loss: 0.0000002463918634\n",
      "Epoch: 18460/20000, Loss: 0.0000002415937104\n",
      "Epoch: 18470/20000, Loss: 0.0000002379914861\n",
      "Epoch: 18480/20000, Loss: 0.0000002341273273\n",
      "Epoch: 18490/20000, Loss: 0.0000002322395574\n",
      "Epoch: 18500/20000, Loss: 0.0000002315819216\n",
      "Epoch: 18510/20000, Loss: 0.0000002307643570\n",
      "Epoch: 18520/20000, Loss: 0.0000002301679700\n",
      "Epoch: 18530/20000, Loss: 0.0000002295551553\n",
      "Epoch: 18540/20000, Loss: 0.0000002289825858\n",
      "Epoch: 18550/20000, Loss: 0.0000002284274530\n",
      "Epoch: 18560/20000, Loss: 0.0000002278826940\n",
      "Epoch: 18570/20000, Loss: 0.0000002273521886\n",
      "Epoch: 18580/20000, Loss: 0.0000002268303803\n",
      "Epoch: 18590/20000, Loss: 0.0000002263183916\n",
      "Epoch: 18600/20000, Loss: 0.0000002258140626\n",
      "Epoch: 18610/20000, Loss: 0.0000002253196953\n",
      "Epoch: 18620/20000, Loss: 0.0000002248290656\n",
      "Epoch: 18630/20000, Loss: 0.0000002243440633\n",
      "Epoch: 18640/20000, Loss: 0.0000002238758015\n",
      "Epoch: 18650/20000, Loss: 0.0000002240531245\n",
      "Epoch: 18660/20000, Loss: 0.0000003083836475\n",
      "Epoch: 18670/20000, Loss: 0.0000126882741824\n",
      "Epoch: 18680/20000, Loss: 0.0000012452658211\n",
      "Epoch: 18690/20000, Loss: 0.0000006424186836\n",
      "Epoch: 18700/20000, Loss: 0.0000003395394117\n",
      "Epoch: 18710/20000, Loss: 0.0000002740376033\n",
      "Epoch: 18720/20000, Loss: 0.0000002588176358\n",
      "Epoch: 18730/20000, Loss: 0.0000002495994806\n",
      "Epoch: 18740/20000, Loss: 0.0000002366159606\n",
      "Epoch: 18750/20000, Loss: 0.0000002260173062\n",
      "Epoch: 18760/20000, Loss: 0.0000002236016172\n",
      "Epoch: 18770/20000, Loss: 0.0000002233006171\n",
      "Epoch: 18780/20000, Loss: 0.0000002221247826\n",
      "Epoch: 18790/20000, Loss: 0.0000002218937567\n",
      "Epoch: 18800/20000, Loss: 0.0000002401708059\n",
      "Epoch: 18810/20000, Loss: 0.0000019195299501\n",
      "Epoch: 18820/20000, Loss: 0.0000012127404716\n",
      "Epoch: 18830/20000, Loss: 0.0000003159397011\n",
      "Epoch: 18840/20000, Loss: 0.0000002833993733\n",
      "Epoch: 18850/20000, Loss: 0.0000002608619809\n",
      "Epoch: 18860/20000, Loss: 0.0000002210373253\n",
      "Epoch: 18870/20000, Loss: 0.0000002242726396\n",
      "Epoch: 18880/20000, Loss: 0.0000002176928575\n",
      "Epoch: 18890/20000, Loss: 0.0000002173640041\n",
      "Epoch: 18900/20000, Loss: 0.0000002166534330\n",
      "Epoch: 18910/20000, Loss: 0.0000002159750068\n",
      "Epoch: 18920/20000, Loss: 0.0000002154983889\n",
      "Epoch: 18930/20000, Loss: 0.0000002167432456\n",
      "Epoch: 18940/20000, Loss: 0.0000003848773531\n",
      "Epoch: 18950/20000, Loss: 0.0000135023719849\n",
      "Epoch: 18960/20000, Loss: 0.0000003910457451\n",
      "Epoch: 18970/20000, Loss: 0.0000006535237276\n",
      "Epoch: 18980/20000, Loss: 0.0000005575772661\n",
      "Epoch: 18990/20000, Loss: 0.0000004090118466\n",
      "Epoch: 19000/20000, Loss: 0.0000002753758963\n",
      "Epoch: 19010/20000, Loss: 0.0000002187123869\n",
      "Epoch: 19020/20000, Loss: 0.0000002218671966\n",
      "Epoch: 19030/20000, Loss: 0.0000002176680027\n",
      "Epoch: 19040/20000, Loss: 0.0000002152261658\n",
      "Epoch: 19050/20000, Loss: 0.0000002143334825\n",
      "Epoch: 19060/20000, Loss: 0.0000002137289954\n",
      "Epoch: 19070/20000, Loss: 0.0000002130270360\n",
      "Epoch: 19080/20000, Loss: 0.0000002124780849\n",
      "Epoch: 19090/20000, Loss: 0.0000002119646467\n",
      "Epoch: 19100/20000, Loss: 0.0000002114647515\n",
      "Epoch: 19110/20000, Loss: 0.0000002110574542\n",
      "Epoch: 19120/20000, Loss: 0.0000002164147048\n",
      "Epoch: 19130/20000, Loss: 0.0000009787868294\n",
      "Epoch: 19140/20000, Loss: 0.0000007813544016\n",
      "Epoch: 19150/20000, Loss: 0.0000003206840518\n",
      "Epoch: 19160/20000, Loss: 0.0000003877991048\n",
      "Epoch: 19170/20000, Loss: 0.0000002746238579\n",
      "Epoch: 19180/20000, Loss: 0.0000003852953512\n",
      "Epoch: 19190/20000, Loss: 0.0000038577682062\n",
      "Epoch: 19200/20000, Loss: 0.0000008726321425\n",
      "Epoch: 19210/20000, Loss: 0.0000008996830161\n",
      "Epoch: 19220/20000, Loss: 0.0000005013283726\n",
      "Epoch: 19230/20000, Loss: 0.0000002922107853\n",
      "Epoch: 19240/20000, Loss: 0.0000002393764191\n",
      "Epoch: 19250/20000, Loss: 0.0000002245950412\n",
      "Epoch: 19260/20000, Loss: 0.0000002126997742\n",
      "Epoch: 19270/20000, Loss: 0.0000002065943221\n",
      "Epoch: 19280/20000, Loss: 0.0000002075090180\n",
      "Epoch: 19290/20000, Loss: 0.0000002094391789\n",
      "Epoch: 19300/20000, Loss: 0.0000002377598776\n",
      "Epoch: 19310/20000, Loss: 0.0000010625399227\n",
      "Epoch: 19320/20000, Loss: 0.0000041256103032\n",
      "Epoch: 19330/20000, Loss: 0.0000003902756305\n",
      "Epoch: 19340/20000, Loss: 0.0000004613473834\n",
      "Epoch: 19350/20000, Loss: 0.0000004148189134\n",
      "Epoch: 19360/20000, Loss: 0.0000002514985908\n",
      "Epoch: 19370/20000, Loss: 0.0000002121711162\n",
      "Epoch: 19380/20000, Loss: 0.0000002067415750\n",
      "Epoch: 19390/20000, Loss: 0.0000002062097622\n",
      "Epoch: 19400/20000, Loss: 0.0000002051412906\n",
      "Epoch: 19410/20000, Loss: 0.0000002026050936\n",
      "Epoch: 19420/20000, Loss: 0.0000002027128261\n",
      "Epoch: 19430/20000, Loss: 0.0000002025910675\n",
      "Epoch: 19440/20000, Loss: 0.0000002082948072\n",
      "Epoch: 19450/20000, Loss: 0.0000003933478467\n",
      "Epoch: 19460/20000, Loss: 0.0000062127637648\n",
      "Epoch: 19470/20000, Loss: 0.0000025164124509\n",
      "Epoch: 19480/20000, Loss: 0.0000008425099054\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 19490/20000, Loss: 0.0000002671143875\n",
      "Epoch: 19500/20000, Loss: 0.0000002124837977\n",
      "Epoch: 19510/20000, Loss: 0.0000002219949522\n",
      "Epoch: 19520/20000, Loss: 0.0000002148189395\n",
      "Epoch: 19530/20000, Loss: 0.0000002020890548\n",
      "Epoch: 19540/20000, Loss: 0.0000001994022938\n",
      "Epoch: 19550/20000, Loss: 0.0000001992909660\n",
      "Epoch: 19560/20000, Loss: 0.0000001998143802\n",
      "Epoch: 19570/20000, Loss: 0.0000002540388664\n",
      "Epoch: 19580/20000, Loss: 0.0000038587131712\n",
      "Epoch: 19590/20000, Loss: 0.0000018515227111\n",
      "Epoch: 19600/20000, Loss: 0.0000009184815326\n",
      "Epoch: 19610/20000, Loss: 0.0000006733751547\n",
      "Epoch: 19620/20000, Loss: 0.0000002123252187\n",
      "Epoch: 19630/20000, Loss: 0.0000002698793935\n",
      "Epoch: 19640/20000, Loss: 0.0000002051802568\n",
      "Epoch: 19650/20000, Loss: 0.0000002008910087\n",
      "Epoch: 19660/20000, Loss: 0.0000002010435480\n",
      "Epoch: 19670/20000, Loss: 0.0000001983139128\n",
      "Epoch: 19680/20000, Loss: 0.0000001968792844\n",
      "Epoch: 19690/20000, Loss: 0.0000001960843576\n",
      "Epoch: 19700/20000, Loss: 0.0000001954447697\n",
      "Epoch: 19710/20000, Loss: 0.0000001949169217\n",
      "Epoch: 19720/20000, Loss: 0.0000001944898997\n",
      "Epoch: 19730/20000, Loss: 0.0000001940465495\n",
      "Epoch: 19740/20000, Loss: 0.0000001936772236\n",
      "Epoch: 19750/20000, Loss: 0.0000001948068586\n",
      "Epoch: 19760/20000, Loss: 0.0000002823755665\n",
      "Epoch: 19770/20000, Loss: 0.0000077438662629\n",
      "Epoch: 19780/20000, Loss: 0.0000045950296226\n",
      "Epoch: 19790/20000, Loss: 0.0000008961662274\n",
      "Epoch: 19800/20000, Loss: 0.0000002052175603\n",
      "Epoch: 19810/20000, Loss: 0.0000003446493224\n",
      "Epoch: 19820/20000, Loss: 0.0000002452495949\n",
      "Epoch: 19830/20000, Loss: 0.0000001994794019\n",
      "Epoch: 19840/20000, Loss: 0.0000002017856104\n",
      "Epoch: 19850/20000, Loss: 0.0000001951989077\n",
      "Epoch: 19860/20000, Loss: 0.0000001927368345\n",
      "Epoch: 19870/20000, Loss: 0.0000001924666861\n",
      "Epoch: 19880/20000, Loss: 0.0000001922238368\n",
      "Epoch: 19890/20000, Loss: 0.0000002151378453\n",
      "Epoch: 19900/20000, Loss: 0.0000019855838218\n",
      "Epoch: 19910/20000, Loss: 0.0000011784313756\n",
      "Epoch: 19920/20000, Loss: 0.0000002159982273\n",
      "Epoch: 19930/20000, Loss: 0.0000002867578530\n",
      "Epoch: 19940/20000, Loss: 0.0000002127903969\n",
      "Epoch: 19950/20000, Loss: 0.0000001988168350\n",
      "Epoch: 19960/20000, Loss: 0.0000001940908021\n",
      "Epoch: 19970/20000, Loss: 0.0000002103947736\n",
      "Epoch: 19980/20000, Loss: 0.0000007034715281\n",
      "Epoch: 19990/20000, Loss: 0.0000064280652623\n",
      "Epoch: 20000/20000, Loss: 0.0000012396001239\n"
     ]
    }
   ],
   "source": [
    "# Create LEM instance\n",
    "lem = LEM(input_size, hidden_size, output_size, dt=0.1)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(lem.parameters(), lr=0.001)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Forward pass\n",
    "    output = lem(input_tensor)\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch + 1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch + 1}/{num_epochs}, Loss: {loss.item():.16f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "1da66d64",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 256])\n",
      "torch.Size([1, 20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(test_tensor.shape)\n",
    "prediction_tensor = torch.zeros(1, 20, 256).float()\n",
    "print(prediction_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a0543daa",
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.no_grad():\n",
    "    prediction = lem(test_tensor)\n",
    "    prediction = prediction.view(1, 1, 256).float()\n",
    "    prediction_tensor[:, 0, :] = prediction\n",
    "    for i in range(19):\n",
    "        prediction = lem(prediction)\n",
    "        prediction = prediction.view(1, 1, 256).float()\n",
    "        prediction_tensor[:, i+1, :] = prediction\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e6b9bad",
   "metadata": {},
   "source": [
    "### Four different types of error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "9c33b0f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exact Solution\n",
    "\n",
    "u_test = u_1.T\n",
    "u_test_full = u_test[80:100, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "00c8fa22",
   "metadata": {},
   "outputs": [],
   "source": [
    "prediction_tensor = torch.squeeze(prediction_tensor)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "334bf0be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([20, 256])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Extrapolation\n",
    "\n",
    "k1 = ( prediction_tensor - u_test_full)**2\n",
    "u_test_full_tensor = torch.tensor(u_test_full**2)\n",
    "u_test_full_tensor.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01080c4f",
   "metadata": {},
   "source": [
    "### L^2 norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "33c17bd8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  0.00013050968844696258 %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(k1)/ torch.mean(u_test_full_tensor)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa3fa35b",
   "metadata": {},
   "source": [
    "### Max absolute norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "01cf8637",
   "metadata": {},
   "outputs": [],
   "source": [
    "R_abs = torch.max(torch.abs(prediction_tensor - u_test_full))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "b3e65482",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(0.0246, dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "print(R_abs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "678810f2",
   "metadata": {},
   "source": [
    "### Explained variance score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "02c72385",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Explained Variance Score: 0.9998695252949855\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "\n",
    "a = prediction_tensor\n",
    "b = u_test_full\n",
    "# Assuming 'a' is your predicted values (model's predictions) and 'b' is the true values (ground truth)\n",
    "# Make sure 'a' and 'b' are PyTorch tensors\n",
    "# a = torch.tensor(a)\n",
    "b = torch.tensor(b)\n",
    "# Calculate the mean of 'b'\n",
    "mean_b = torch.mean(b)\n",
    "\n",
    "# Calculate the Explained Variance Score\n",
    "numerator = torch.var(b - a)  # Variance of the differences between 'b' and 'a'\n",
    "denominator = torch.var(b)    # Variance of 'b'\n",
    "evs = 1 - numerator / denominator\n",
    "\n",
    "print(\"Explained Variance Score:\", evs.item())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f664baf6",
   "metadata": {},
   "source": [
    "### Mean absolute error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "43fc2394",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  tensor(0.0035, dtype=torch.float64) %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(torch.abs(prediction_tensor - u_test_full))\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test, \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75e50e9e",
   "metadata": {},
   "source": [
    "### Contour plot for PINN (80 percent) and (20 percentage lem prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "8e3eec75",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(prediction_tensor.shape)\n",
    "prediction_tensor = torch.squeeze(prediction_tensor)\n",
    "input_tensor = torch.squeeze(input_tensor)\n",
    "\n",
    "conc_u = torch.squeeze(input_tensor)\n",
    "concatenated_tensor = torch.cat((conc_u, prediction_tensor), dim=0)\n",
    "\n",
    "x1 = np.linspace(-1, 1, 256)\n",
    "t1 = np.linspace(0, 1, 99)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e393a1e0",
   "metadata": {},
   "source": [
    "### Snapshot time plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "04f91104",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[3, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, 83].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.83}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('LEM_0.83_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "#plt.savefig('lem_0.83_20.png', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "3d96305e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[-2, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, -2].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.98}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('LEM_0.98_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "#plt.savefig('lem_0.98_20.png', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d962cd38",
   "metadata": {},
   "source": [
    "### Contour plot where 80 percent for PINN solution and 20 percent for lem solution"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5011fef9",
   "metadata": {},
   "source": [
    "### Exact contour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "8d6ac2bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = u_1.T\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(-1, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "#plt.savefig('Contour_Exact.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_exact.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "c034dcf7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(-1, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=0.8, color='black', linestyle='dotted', linewidth=5)\n",
    "\n",
    "#plt.savefig('Contour_LEM_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_LEM_20.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b7ab04a2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
